我有一個新的Padrino 0.13.1項目,我在AWS Elastic Beanstalk工作者實例上託管。工作者實例有一個cron作業,每隔5分鐘在我的Padrino應用程序中調用POST。試圖避免「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/MAR/2016:04:49:59 0000] 「POST/myroutine/HTTP/1.1」 200 0 「 - 」「aws- sqsd/2.0" , 「 - 」
但在我的AWS production.log
文件,我也看到了這個拿出每5分鐘:
WARN - 21 /三月/ 2016 4時49分59秒的攻擊報道by Rack :: Protection :: AuthenticityToken
奇怪的是,例程執行得很好,並做它應該做的事情。我只想停止填寫每5分鐘發生一次的Rack::Protection
錯誤日誌文件。
這是因爲某處配置錯誤的csrf設置或錯誤?
在應用程序配置,'設置:protection_from_csrf,TRUE'行看起來矛盾,你想實現什麼。你能檢查這是否是一個錯字? – Kashyap
謝謝@Kashyap。以上是代碼中的內容。我還有其他幾個POST例程,我希望對這些例程提供CSRF保護,因爲它們都是在我的應用程序中調用的。我只是有一個例程從應用程序外部調用,所以它不能像內部調用那樣傳遞csrf標記。 – CyberFerret