Наше приложение rails позволяет пользователям, не вошедшим в систему, отправлять сообщения зарегистрированным пользователям, которые создают объект сообщения, сохраняют его в нашей базе данных, а затем отправляют содержимое по электронной почте зарегистрированному пользователю. В нашем промежуточном приложении мы начали получать много спама от ботов, сканирующих наш сайт. Нас волнуют 2 вещи:
- неудобства для наших пользователей
- Внедрение SQL или любые другие уязвимости безопасности, о которых мы не думаем, которые могут возникнуть в этом контексте
Какие есть хорошие способы борьбы с этой проблемой? Я понимаю, что мы могли бы внедрить систему капчи, но это не идеально с точки зрения пользовательского опыта. Мы также можем блокировать IP-адреса в таких местах, как Китай (или там, где происходят атаки), но мы также можем захотеть обслуживать пользователей в Китае.
Кроме того, я считаю, что rails имеет встроенную функциональность для очистки строк запросов и предотвращения внедрения SQL, но включен ли он по умолчанию? Есть ли еще какие-то вещи, о которых нам следует помнить, чтобы в этом случае рельсы не обрабатывались по умолчанию?
Есть предложения?