Предотвращение спама в ссылках через формы на рельсах - PullRequest
3 голосов
/ 04 марта 2011

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

  1. неудобства для наших пользователей
  2. Внедрение SQL или любые другие уязвимости безопасности, о которых мы не думаем, которые могут возникнуть в этом контексте

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

Кроме того, я считаю, что rails имеет встроенную функциональность для очистки строк запросов и предотвращения внедрения SQL, но включен ли он по умолчанию? Есть ли еще какие-то вещи, о которых нам следует помнить, чтобы в этом случае рельсы не обрабатывались по умолчанию?

Есть предложения?

Ответы [ 2 ]

6 голосов
/ 04 марта 2011

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

Railsв большинстве случаев защищает от SQL-инъекций, подробнее об этом можно прочитать в Руководстве по безопасности Rails .Вся эта справочная страница хорошо читается.

2 голосов
/ 24 мая 2011

Попробуйте гем 'honeypot-captcha' - самый простой способ добавить капчи honeypot к рельсам. Работает довольно хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...