私はAWS Elastic Beanstalkワーカーインスタンスでホスティングしている新しいPadrino 0.13.1プロジェクトを持っています。 workerインスタンスには、Padrinoアプリで5分ごとにPOSTを呼び出すcronジョブがあります。次のように私は、ルーチンを定義しています「Rack :: Protection :: AuthenticityTokenによって報告された攻撃」を回避しようとしています
post :myroutine, :with => :myparams, :csrf_protection => false do
# ... do some stuff
status 200
end
次のように私も/config/apps.rb
を設定している:
Padrino.configure_apps do
set :session_secret, '...'
set :protection, :except => :path_traversal
set :protection_from_csrf, true
set :allow_disabled_csrf, true
end
ワーカーインスタンスはhttp://localhost:80/myroutine/somevar 5分ごとにポストを行います。 nginxのaccess.log
ファイルを示しています。
127.0.0.1 - - [21 /月/ 2016:04:49:59 +0000] "POST/myroutine/HTTP/1.1" 200 0 " - "「aws- sqsd/2.0" " - "
しかし、私のAWS production.log
ファイルで
がWARN - 4時49分59秒の攻撃が報告21 /月/ 2016ラック::保護:: AuthenticityToken
奇妙なことに、ルーチンはうまく実行され、実行されるべきことをします。私はログファイルが5分ごとにRack::Protection
エラーでいっぱいになるのを止めたいと思っています。
csrf設定が誤って設定されているか、バグが原因ですか。
:protection_from_csrfを、true'にラインはあなたが達成しようとしているものと矛盾に見えます。それがタイプミスかどうか確認できますか? – Kashyap
ありがとう@Kashyap。上記はコード内のものです。私はいくつかの他のPOSTルーチンを持っています。それらは私のアプリ内からすべて呼び出されているので、CSRFの保護が必要です。私はちょうど私のアプリの外から呼び出されるこのルーチンを持っているので、内部呼び出しのようにcsrfトークンを渡すことはできません。 – CyberFerret