2016-08-24 9 views
0

私は、高感度で(ログアウトした)エンドポイントにJSONを高いスケールでポストする悪い俳優がいるというシナリオに直面しています。`protect_from_forgery with::exception`クラッシュプロセスはありますか?

IPによるレート制限に加えて、before_filterとしてprotect_from_forgery with: :exceptionをRailsアプリに追加したいと思います。

このフィルタは500応答を返すか、実際にRailsプロセスをクラッシュさせるキャッチされない例外を発生させますか?ローカルでは、後者のようです。

私の心配は、認証されていないボットが、プロセスを繰り返しクラッシュすることによってサービスを効果的にDDOSするということです。

答えて

1

いいえ、あなたのアプリで捕らえられていない例外はすべてRails(またはRack)によって救済され、ログに記録され、500エラーがクライアントに返されます。 segfaultやその他の重大な失敗だけがプロセスを停止させる原因になります。そのような場合でも、良いウェブサーバ(プーマなど)がプロセスを再開します。しかし、Pumaでも死ぬことができれば、プロダクション環境にはプロセスモニタ(god、monitなど)が必要です。このモニタは、Webサーバーが失敗した場合やメモリの限界を超えた場合に再起動します。

「ローカルでは、[Railsプロセスをクラッシュさせる」と表示されています。 rails serverというあなたのコマンドは、実際にCRSFの例外時に終了していますか?

+0

脳のおなら。私はRubyが新しく、過剰なスタックトレースがクラッシュしておらず、再起動を見たことに気付かなかった。あなたは絶対に正しいです。 – Ben

関連する問題