Пример приложения Rails, работающего на Heroku.Мы получаем определенный шаблон запросов (вроде бы DoS) каждый день, и я бы хотел настроить промежуточное программное обеспечение для обработки этих паролей вместо того, чтобы приложение Rails запускалось, чтобы возвращать Exception: ActionController::UnknownFormat
или Exception: ActionController::InvalidAuthenticityToken
для каждого из них.Я чувствую, что это не лучший способ справиться с ними.
Я реализовал Rack :: Attack, который выглядит следующим образом:
class Rack::Attack
blocklist('block ip') do |req|
['a.b.c.d','w.x.y.z'].include? req.ip
end
blocklist('block corrupt paths') do |req|
req.path =~ /\w*((\.aspx)|(\.php)|(\.txt)|(\.zip)|(\.tar)|(\.rar)|(\.com)|(\.sql))$/
end
blocklisted_response = lambda do |env|
# Using 503 because it may make attacker think that they have successfully
# DOSed the site. Rack::Attack returns 403 for blocklists by default
[ 503, {}, ['Blocked']]
end end
Несмотря на то, что он блокировал определенный стиль пакетных запросов, которые будут регулярно отображаться в журналах, он все еще не 'Я делаю работу хорошо.В частности, я вижу следующий стиль запросов в пакетном режиме, которые ежедневно поступают в наше приложение:
- // config / AspCms_Config.asp
- / home / favicon.ico
- / 3 / favicon.ico
Каждый запрос и отчет об ошибке является ресурсоемким и дорогостоящим.
Как мне лучше обрабатывать эти запросы?Решение заключается в дальнейшей модификации регулярного выражения?Существуют ли другие стандарты, которые мне нужно прочитать?
Спасибо.