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


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

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

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

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

Изменить 1:

Немного покопавшись, я нашел это:

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

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

Author: Lawrence Cherone, 2010-01-06

11 answers

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

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

 9
Author: Seva Alekseyev, 2010-01-06 03:28:12

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

Есть некоторые исследования на эту тему:

 5
Author: Mark Elliot, 2010-01-06 03:33:12

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

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

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

 3
Author: cletus, 2010-01-06 03:28:54

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

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

 1
Author: mopoke, 2010-01-06 03:28:09

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

И не работал бы с порнографическими изображениями персонажа из "Аватара", например:-)

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

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

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

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

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

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

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

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

 1
Author: paxdiablo, 2010-01-06 03:37:00

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

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

Или

Б) будьте человеком, которого каждый час или около того отрывают от проекта, чтобы нажать "одобрить".

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

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

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

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


Что касается логипика:

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

Http://www.ethereality.info/ethereality_website/paintings_drawings/new/portraits/elena_formal_portrait/closeup-3.jpg

И он вернул следующее:

Оценено как: порно Завершено за 25 секунд.

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

 1
Author: Anthony, 2010-01-06 03:59:13

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

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

 0
Author: pavium, 2010-01-06 03:29:33

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

 0
Author: Alix Axel, 2010-01-06 04:03:22

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

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

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

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

 0
Author: Ash, 2017-05-23 12:02:39

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

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

 0
Author: Yogesh Saroya, 2014-03-31 09:33:08

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

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

Вот пример на PHP с использованием SDK:

<?php
$client = new SightengineClient('YourApplicationID', 'YourAPIKey');

$output = $client>check('nudity')>image('https://sightengine.com/assets/img/examples/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": "https://sightengine.com/assets/img/examples/example2.jpg"
  }
}

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

 0
Author: agrandiere, 2017-05-12 09:13:58