2010-09-10 74 views
6

我有兩個需要通過HTTP彼此對話的應用程序。一個是PHP應用程序,另一個是我的主應用程序,即Rails應用程序。我需要PHP應用程序通過向其發送數據來與Rails應用程序通話,但是當我這樣做時,我收到了無效的真實性令牌錯誤。有沒有辦法解決?或者,我將如何創建自己的令牌來傳遞POST以便我的Rails應用程序進行身份驗證?Rails 3 protect_from_forgery問題

回答

15

documentation for ActionController::RequestForgeryProtection::ClassMethods

您可以通過指定並跳過認證令牌要求:除或通過過濾器之前迫使要跳過....從文檔示例...

class FooController < ApplicationController 
    protect_from_forgery :except => :index 

    # you can disable csrf protection on controller-by-controller basis: 
    skip_before_filter :verify_authenticity_token 
end 
+1

通過單獨的獲取請求獲取真實性標記並使用它發佈使用PHP的表單會不會更好?禁用令牌不是安全問題? – Alex 2012-10-04 05:31:36

+0

我同意,你不應該禁用索引和POST的保護。任何嘗試這樣做的人都應該遵循Alex的建議,或者至少使用其他類型的安全措施,如接受來自已知IP的請求,使用request.remote_ip丟棄不需要的IP。 – martincho 2013-04-02 13:44:18