2016-03-21 9 views
2

私は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ファイルで

、私も5分ごとに出てくる、これを参照してください。

がWARN - 4時49分59秒の攻撃が報告21 /月/ 2016ラック::保護:: AuthenticityToken

奇妙なことに、ルーチンはうまく実行され、実行されるべきことをします。私はログファイルが5分ごとにRack::Protectionエラーでいっぱいになるのを止めたいと思っています。

csrf設定が誤って設定されているか、バグが原因ですか。

+0

:protection_from_csrfを、true'にラインはあなたが達成しようとしているものと矛盾に見えます。それがタイプミスかどうか確認できますか? – Kashyap

+0

ありがとう@Kashyap。上記はコード内のものです。私はいくつかの他のPOSTルーチンを持っています。それらは私のアプリ内からすべて呼び出されているので、CSRFの保護が必要です。私はちょうど私のアプリの外から呼び出されるこのルーチンを持っているので、内部呼び出しのようにcsrfトークンを渡すことはできません。 – CyberFerret

答えて

1

nginxリバースプロキシ設定によって発生します。

http関連情報が失われる可能性があり、セッション情報が失われます。

https://github.com/znc/znc/issues/946 私はちょうどラインの下に追加して、それが動作:アプリケーション構成、 `設定で

proxy_set_header  X-Real_IP  $remote_addr; 
proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 
proxy_set_header  X-NginX-Proxy true; 
proxy_set_header  Host   $http_host; 
proxy_set_header  Upgrade   $http_upgrade; 
proxy_pass_header  Set-Cookie; 
関連する問題