我有一個rails應用程序,它爲iPhone應用程序提供一些apis服務。 我希望能夠簡單地發佈資源,而不必考慮獲取正確的csrf標記。 我嘗試了一些方法,我在這裏看到的計算器,但它似乎他們不再工作的軌道3. 謝謝你幫助我。在rails 3中關閉CSRF令牌
回答
在控制器要禁用CSRF檢查:
skip_before_action :verify_authenticity_token
或者禁用它的一切,除了幾個方法:
skip_before_action :verify_authenticity_token, :except => [:update, :create]
,或禁用只有指定的方法:
skip_before_action :verify_authenticity_token, :only => [:custom_auth, :update]
在Rails3中,你可以在你的控制器的具體方法禁用CSRF令牌:
protect_from_forgery :except => :create
對於任何人閱讀,請注意這是'ApplicationController'應該去的。 Mike Lewis的回答如下('skip_before_filter:verify_authenticity_token')是如何在每個控制器的基礎上禁用它,假設控制器繼承自'ApplicationController'。 – NudeCanalTroll 2013-02-16 21:04:54
似乎這是不安全的http://stackoverflow.com/questions/10676018/security-safe-to-disable-csrf-tokens-for-json-rails-calls。你怎麼看?是嗎? – juanpastas 2013-05-13 03:49:08
@NudeCanalTroll你的意思是把它放在控制器,我想它不會工作? – BlackDivine 2013-05-28 10:27:15
使用Rails 4,你現在有skip_before_action
而不是skip_before_filter
寫的選項。
# Works in Rails 4 and 5
skip_before_action :verify_authenticity_token
或
# Works in Rails 3 and 4 (deprecated in Rails 4 and removed in Rails 5)
skip_before_filter :verify_authenticity_token
有什麼區別? – 2015-02-25 13:49:18
如果我沒有記錯,過濾器已被棄用 – nruth 2015-04-03 22:02:38
- 1. rails csrf令牌生存期
- 2. Rails的Angular 2 CSRF令牌
- 3. csrf令牌dajaxice
- 4. httplib - CSRF令牌
- 5. 笨,CSRF令牌
- 6. 動態創建CSRF令牌CakePHP 3
- 7. 的Rails 3:無法驗證CSRF令牌真實性
- 8. 帶Webpack的Rails 5.1:訪問CSRF令牌
- 9. Rails的authenticity_token形式VS CSRF令牌
- 10. Rails CSRF令牌 - 它們是否過期?
- 11. 避免CSRF令牌
- 12. CSRF同步令牌
- 13. CSRF令牌生成
- 14. CSRF令牌驗證
- 15. 瞭解CSRF令牌
- 16. Flask-Security CSRF令牌
- 17. PHP中的Laravel csrf令牌
- 18. Cookie中的CSRF令牌
- 19. csrf令牌使用
- 20. Laravel behat CSRF令牌
- 21. csrf令牌跟進
- 22. Django的CSRF令牌
- 23. 變化CSRF令牌
- 24. 在Rails 2中關閉Web服務的真實性令牌?
- 25. Rails 3真實性令牌
- 26. CSRF令牌在源代碼中可見
- 27. 無法在rails中驗證CSRF令牌的真實性
- 28. 無法在Rails + React App中驗證CSRF令牌
- 29. 關閉Apple通知令牌
- 30. Rails 3.2.15「無法驗證CSRF令牌的真實性」雖然存在令牌
這對於那些有定期的瀏覽器訪問的形式和API端點的混合應用程序的正確答案。 Markus Proske的回答是正確的,如果你確定你的應用程序中沒有任何瀏覽器可訪問的表單。 – 2014-07-09 10:44:46
這究竟在哪裏呢?如果某些寶石的控制器部分怎麼辦? – 2017-04-05 08:29:23