Обработка злоупотреблений пользователей в рельсах - PullRequest
2 голосов
/ 19 декабря 2009

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

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

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

Ответы [ 3 ]

7 голосов
/ 19 декабря 2009

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

1 голос
/ 23 января 2010

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

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

1 голос
/ 19 декабря 2009

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

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

...