PHP – Блокирование загруженных изображений для взрослых

У нас есть система управления продуктом, где руководитель разработки продукта может загружать фотографии продуктов, и эти фотографии будут мгновенно появляться на нашем веб-сайте.

На прошлой неделе, когда один человек ушел с работы, он загрузил кучу картинок с оценкой XXX, и все сразу появилось на веб-сайте. К счастью, мы заметили и удалили их в течение нескольких минут. Тем не менее, этого времени было достаточно, чтобы шокировать некоторых наших клиентов.

Вот мой вопрос: как эффективно анализировать и блокировать такие изображения от загрузки? Можно ли это сделать, используя любую библиотеку в PHP? Это возможно с PHP в первую очередь?

Любая помощь приветствуется.

Изменить 1:

После некоторого рытья я нашел это:

http://pikture.logikit.net/ (Мертвая ссылка)

Кто-нибудь использовал его раньше или какое-либо мнение об этом?

Внедрение премодерации изображения. Если есть кто-то, кто загружает их (как вы подразумеваете), не должно быть слишком сложно, если кто-то еще возьмет краткий взгляд и нажимает «Одобрить» для каждого.

И это дешевле и надежнее, чем в любой библиотеке. Вы не можете формализовать «взрослый».

Это сложная проблема на любом языке, проблема обработки изображений чрезвычайно сложна.

Существует несколько исследований по этому вопросу:

  • Обнаружение обнаженного изображения на основе внешнего вида
  • SNIF: простой ню изображение
  • Фильтрация нежелательного изображения на основе содержимого изображения

Нет надежного способа сделать это. Независимо от того, какой автоматический процесс вы используете, вы создадите ложноположительные и ложные негативы. Если вы согласны с тем, что можете посмотреть фильтр изображения , который анализирует изображения на основе скинтона. Тем не менее, он будет также отмечать изображения, которые являются крупными лицами.

Такой метод может быть эффективным в сочетании с информацией об истории пользователя. Если они внезапно загружают сотни изображений (когда они могут усреднить два за неделю до этого), и большинство из них будут помечены, то, вероятно, они захотят приостановить эти загрузки, пока кто-то не посмотрит на них.

Подумайте об этом, просто загрузив большое количество изображений за короткий промежуток времени (и доведя их до сведения админов сайта), вероятно, достаточно в большинстве случаев.

Это возможно, хотя вы получите ложные негативы и ложные срабатывания.

Гораздо проще было бы реализовать некоторую форму системы умеренности, которая требует одобрения от другого человека до того, как что-то начнет жить.

Вы собираетесь идти вниз «обнаружение скинтон» путь предотвращения порно. Это ошибка, поскольку любое решение, даже если это возможно, будет ужасно дорогим, чтобы получить право.

И не будет работать на порно образы персонажа из «Аватара», например 🙂

Два подхода, которые вы могли бы предпринять (я предпочитаю первый).

  1. Не разрешайте немедленную публикацию этих изображений, пока они не будут очищены доверенной стороной.
  2. Разрешите пользователям отмечать их как оскорбительные и проверять тех, кто получает голоса.

Причина, по которой я предпочитаю первую, состоит в том, что вторая по-прежнему позволяет видеть изображения широкой публикой, и это почти наверняка повредит репутацию компании.

Вы должны серьезно относиться к этой репутации. Мне напомнили о системе, которую мы создали много лет назад для измерения продолжительности прыжков на водных лыжах.

По обе стороны реки находились три станции, где люди, которым было поручено измерять, указывали бы свои достопримечательности там, где они думали, что лыжник приземлился (гексагуляция, я думаю).

Эти шесть местоположений были в основном усреднены (после удаления выбросов), чтобы получить фактическое положение (следовательно, длина), и все это было рассчитано компьютером и отправлено обратно на базовую станцию.

Тем не менее, на телевизионных станциях, которые передавали событие, человек читал длину с экрана, а затем вручную вводил их на свои компьютеры. Когда сказали, что мы можем автоматизировать процесс, они дали понять, что они не разрешат отправлять непроверенные данные своим зрителям (если мы добавим профанацию, я думаю).

Хотя я думал, что это немного параноидально, я мог понять это.

На самом деле легко добавить умеренность, как было предложено, но я думаю, что есть некоторые колебания в плане ограничения производительности и разочарования разработчиков, которым приходится ждать второй набор глаз. Даже если все участники понимают и не воспринимают это лично, все равно может раздражать:

a) быть человеком, которому приходится ждать день или два, чтобы контент переходил вживую, потому что их модератор болен, а резервный модератор находится на собрании.

или

б) быть человеком, который прерывается каждый час или около того из проекта, чтобы щелкнуть «одобрить».

Иногда даже технология требует некоторой из предложенной бюрократии и нуждается в том, чтобы принять головные боли, с которыми она сталкивается, и я думаю, что есть определенные умные способы сохранить досады, подобные тем, о которых я упоминал, до минимума.

Сказав все это, имейте в виду, что действия этого менеджера, вероятно, отражают его прекращение. Или, по крайней мере, как оно это взяло. Возможно, другим нетехническим административным решением будет удаление привилегий доступа к сети, как только вы узнаете, что кто-то находится в уязвимом положении.

Независимо от того, обратился ли человек к своему уведомлению за две недели или только что утром получил мешок, они должны либо иметь умеренный доступ, либо вообще не иметь доступа к чему-либо, что станет общедоступным или будет критически важным.

Большинство разработчиков работать очень трудно завоевать доверие начальства, позволяя им делать вещи публично или записывать данные непосредственно в критические системы. Но это доверие должно иметь очень немедленную оговорку о политике выхода.


Что касается LogiPik:

Я никогда не использовал его, но я просто попробовал их демо. Я загрузил следующие (случайный поиск «закрыть» на google:

http://img.ruphp.com/image-processing/closeup-3.jpg

И он получил следующее:

Оценивается как: порно завершенного в 25 сек.

Для меня это слишком медленно (для одной картины), чтобы получить ложноположительный, особенно за доллары США за доллар.

Я не думаю, что вы можете гарантировать, что любое программное обеспечение будет 100% точно идентифицировать такие изображения.

Вам нужно, чтобы человек модерировал закачки. Не делайте их мгновенно видимыми на своем веб-сайте.

API Trynt имеет очень хороший / быстрый веб-сервис обнаружения наготы , но, похоже, возвращает банкомат заголовка 502.

Используя текущую технологию, нет абсолютно надежного решения для этого, так что не втягивайтесь в маркетинг, который подразумевает, что есть.

Смотрите предыдущий вопрос в StackOverflow.

Вы могли бы объединить алгоритм обнаружения кожи с предварительной модерацией, чтобы довести подозрительные изображения проблемы до внимания модератора человека. Просто не думайте, что вы можете пропустить шаг, чтобы заставить человека смотреть на изображения.

Кстати, процессы безопасности вашей компании звучат немного слабее. Как другой сотрудник загрузил изображения, если только руководитель разработки продукта должен был это сделать? Убедитесь, что вы сохранили свои хэшированные пароли и минимизировали доступ к рабочим серверам.

Попробуйте это, я надеюсь, что это поможет вам

http://lab.yogeshsaroya.com/prevent-uploads-nude-or-adult-images-using-php/

Если вы ищете решение на базе API, вы можете проверить Sightengine.com

Это автоматизированное решение для обнаружения таких вещей, как контент для взрослых, насилие, знаменитости и т. Д. В изображениях и видео.

Вот пример в PHP, используя SDK:

<?php $client = new SightengineClient('YourApplicationID', 'YourAPIKey'); $output = $client>check('nudity')>image('http://img.ruphp.com/image-processing/example2.jpg'); 

Затем результат вернет классификацию:

 { "status": "success", "request": { "id": "req_VjyxevVQYXQZ1HMbnwtn", "timestamp": 1471762434.0244, "operations": 1 }, "nudity": { "raw": 0.000757, "partial": 0.000763, "safe": 0.999243 }, "media": { "id": "med_KWmB2GQZ29N4MVpVdq5K", "uri": "http://img.ruphp.com/image-processing/example2.jpg" } } 

Взгляните на документацию для получения дополнительной информации: https://sightengine.com/docs/#nudity-detection (отказ от ответственности: я там работаю)