Может ли `protect_from_forgery with::exception` вызывать сбой?
Я сталкиваюсь со сценарием, где есть плохие актеры, размещающие JSON на чувствительных (вышедших из строя) конечных точках в большом масштабе.
В дополнение к ограничению скорости по IP, я хотел бы добавить protect_from_forgery with: :exception
как before_filter для приложения Rails.
Этот фильтр возвращает ответ 500 или фактически вызывает необработанное исключение, которое приводит к сбою процесса Rails? В местном масштабе это, кажется, последнее.
Меня беспокоит то, что неаутентифицированные боты будут эффективно DDOS обслуживать, многократно прерывая процессы.
1 ответ
Нет, все неперехваченные исключения в вашем приложении должны быть спасены Rails (или Rack) и зарегистрированы, с ошибкой 500, возвращаемой клиенту. Только segfault или другой критический сбой может привести к смерти процесса. И даже в таких случаях хороший веб-сервер (скажем, Puma) перезапустит процесс. Но если даже Puma умрет, ваша производственная среда должна иметь монитор процессов (god, monit и т. Д.), Который перезапустит веб-сервер, если он выйдет из строя или превысит границы памяти.
Мне любопытно, что вы подразумеваете под "локально, похоже, что он [завершает процесс Rails]". Ваша команда rails server
на самом деле выход на исключение CRSF?