Как лучше защищать мое приложение от злонамеренных регистраций - капча или подтверждение электронной почты пользователя? - PullRequest
2 голосов
/ 30 декабря 2010

Я использую Authlogic для приложения Ruby on Rails (2.3.9), которое я создал, где пользователи могут отслеживать тренировки.По мере роста популярности меня беспокоит ложная / злонамеренная регистрация.Какова лучшая практика здесь или преимущества и недостатки каждого подхода.

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

Просто ищу общую дискуссию об этом, чтобы я лучше понял.

Ответы [ 3 ]

4 голосов
/ 30 декабря 2010

Любой ботнет может настроить свой собственный почтовый сервер для рассылки спама ...

Некоторые могут пройти мимо каптч тоже ...

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

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

1 голос
/ 30 декабря 2010

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

Есть еще несколько вещей, которые вы могли бы рассмотреть:

  1. Если сайт является социальным, внедрите систему маркировки, которая делает сообщество модератором.

  2. По умолчанию все пользователи отключены, затем администратор должен подтвердить или удалить их.

  3. Требуется кредитная карта для регистрации.

Некоторые из них могут работать или не работать в зависимости от вашего случая. Я обнаружил, что № 3 в значительной степени устраняет спам все вместе, но это также может отпугнуть реальных потенциальных клиентов.

0 голосов
/ 30 декабря 2010

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

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

def obfuscate_email(email)
return nil if email.nil? #Don't bother if the parameter is nil.
lower = ('a'..'z').to_a
upper = ('A'..'Z').to_a
email.split('').map { |char|
    output = lower.index(char) + 97 if lower.include?(char)
    output = upper.index(char) + 65 if upper.include?(char)
    output ? "&##{output};" : (char == '@' ? '@' : char)
}.join
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...