2016-08-24 2 views
0

민감한 (로그 아웃 된) 엔드 포인트에 JSON을 POST-POST하는 나쁜 액터가있는 시나리오에 직면하고 있습니다.`protect_from_forgery with : : exception` 충돌 프로세스가 있습니까?

IP로 요금을 제한하는 것 외에도, 레일 패키지에 before_filter로 protect_from_forgery with: :exception을 추가하고 싶습니다.

필터는 500 응답을 반환합니까, 아니면 실제 캐치되지 않은 예외를 발생시켜 Rails 프로세스를 중단합니까? 지역적으로는 후자 인 것으로 보인다.

제 관심은 인증되지 않은 봇이 프로세스를 반복적으로 충돌시킴으로써 서비스를 효과적으로 DDOS하는 것입니다.

답변

1

아니요, 앱에서 캐치되지 않은 예외는 모두 레일스 (또는 랙)에 의해 구출되고 로깅되며 500 오류가 클라이언트에 반환됩니다. segfault 또는 기타 심각한 오류만으로 프로세스가 종료 될 수 있습니다. 그리고 그런 경우조차도 좋은 웹 서버 (푸마)가 프로세스를 다시 시작합니다. 그러나 퓨마조차도 죽을 경우, 프로덕션 환경에 프로세스 모니터 (god, monit 등)가 있어야 웹 서버가 실패하거나 메모리 한계를 초과하면 웹 서버가 다시 시작됩니다.

저는 "로컬에서는"[Rails 프로세스를 중단합니다] "라고 말하면서 궁금합니다. rails server 명령은 실제로 CRSF 예외시 종료됩니까?

+0

뇌의 방귀. Ruby를 처음 사용하고 과도한 스택 추적이 크래시 + 재시작을 본 것이 아니라는 사실을 깨닫지 못했습니다. 당신은 절대적으로 맞습니다. – Ben