2009-12-18 9 views
1

Я работаю над веб-приложением, которое может быть подвержено злоупотреблениям со стороны пользователей, особенно спам-комментарии/учетные записи. Я знаю, что RECAPTCHA позаботится о ботах в том, что касается поддельных пользователей, но он ничего не сделает для тех пользователей, которые создают учетную запись и как-то помещают свои спам-комментарии на автопилоте (например, я видел в twitter бесчисленное количество раз) ,Обработка злоупотреблений пользователей в рельсах

Решение, которое я придумал, позволяет любому пользователю отмечать другого пользователя, а затем иметь список помеченных пользователей (атрибут boolean), вызывать действие индекса пользователей, доступное только администратору. Затем пользователи, которые были помечены, могут стать кандидатами на запрет (другой логический атрибут) или unflagging. Запрещенные пользователи все равно смогут получить доступ к сайту, но будут иметь значительно уменьшенные привилегии. По определенным причинам я не хочу полностью удалять пользователей.

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

ответ

1

До «Web 2.0» веб-сайты были модерированы администраторами. Теперь цель состоит в том, чтобы заставить сообщества смягчить себя. StackOverflow сам по себе является фантастическим примером. reputation system позволяет пользователям выполнять более «административные» задачи, поскольку они доказывают, что они заслуживают доверия. Если вы разрешаете пользователям отмечать друг друга, вы уже находитесь на этом пути. Что касается деталей системы (кто может отмечать, блокировать и запрещать), я бы сказал, что вы должны посмотреть на различные успешные онлайн-сообщества (например, StackOverflow), чтобы увидеть, как они работают, и насколько они успешны. В конце концов, это, вероятно, потребует проб и ошибок, так как все сообщества отличаются.

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

+0

Мне очень нравится эта идея, я не хотел, чтобы какой-нибудь случайный пользователь помещал других пользователей волей-неволей. Мне действительно нравится система репутации StackOverflow. Спасибо за предложение! –

6

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

+0

Отличное предложение! Я мог бы просто реализовать это. –

1

Некоторые сложные спамеры рады провести время, разбивая ваш капчу, если они считают, что вознаграждение достаточно высоко. Вы также должны рассмотреть возможность просмотра спам-сервера, такого как akismet, для которого есть отличный плагин rails (https://github.com/joshfrench/rakismet).

Есть и другие альтернативы, такие как defensio (https://github.com/thewebfellas/defensio-ruby), а также драгоценный камень, который я нашел один раз, который отлично справлялся с обнаружением общего спама в блогах, но я не могу на всю жизнь найти его больше.