我有一個有趣的挑戰來解決舊的Rails 2.0.2應用程序(在更新到Rails 4的過程中,但我不能等那麼久解決這個問題)。問題是這樣的:我們即將分發離線內容,目的是最終將用戶上網到我們的網站。在從離線狀態轉爲在線狀態時,他們會在離線狀態下填寫表單,但我們希望能夠將數據發佈到表單的在線版本,而無需用戶將表單填寫兩次。我看到的問題是如何處理在線版本中更改的真實性令牌。任何人對我們如何解決這個問題都有任何建議。我瞭解真實性令牌的目的是爲了防止我正在嘗試做的事情,但是我能否解決它,例如,通過某種方式預先在線版本中使用脫機版本的數據進行預填充?我不認爲我可以複製當前正在運行的真實性令牌/會話對,除非我能以某種方式將相同的session_id寫入聯機表單域的cookie中?或者,也許我必須解決它的服務器端?我試圖避免爲這個問題設置自定義代碼服務器端... 感謝您提前做出任何迴應。Rails - 繞過真實令牌
0
A
回答
1
除了在發佈到在線表格,GET在線表格和預填充字段使用查詢字符串。
例如,離線形式名字和姓氏會,提交時,執行GET請求如下:
mysite.com/offline_form/new?first_name=Dick&last_name=Steele
此URL將呈現活new
形式,完成一個有效的CSRF令牌。使用查詢字符串來填充輸入字段。查詢字符串可以通過params[]
訪問。
form_for :online do |f|
f.text_field :first_name, value: params[:first_name]
f.text_field :last_name, value: params[:last_name]
# ...
end
這樣,您的用戶可以提交一個現場CSRF標記化表單,而無需填寫第二個表單。至少,您的用戶將不得不點擊兩個提交按鈕。您可以將表單的在線版本作爲確認步驟提供。
相關問題
- 1. Rails 3真實性令牌
- 2. Rails 4真品令牌
- 3. Rails 3.2.15「無法驗證CSRF令牌的真實性」雖然存在令牌
- 4. 無效的真實性令牌
- 5. 自定義Rails真品令牌
- 6. 繞行JSON網絡令牌通過broswer
- 7. 通過http頭傳遞真實性令牌
- 8. Rails Ajax無法驗證CSRF令牌真實性
- 9. Rails 4沒有真實性令牌的Ajax請求
- 10. 在Rails 2中關閉Web服務的真實性令牌?
- 11. Rails/Redmine - 無法驗證真實性令牌導致422錯誤
- 12. Rails發佈無法驗證CSRF令牌的真實性
- 13. 實現使用Rails令牌真僞,並制定
- 14. Rails 5 devise_token_auth無法驗證CSRF令牌的真實性
- 15. Ruby on Rails使用IE時無效的真實性令牌
- 16. Rails的CSRF令牌的真實性和設計
- 17. Rails - 捕獲'無效的真實性令牌'異常
- 18. Rails 3忽略AJAX請求真實性令牌
- 19. Rails部署導致「無法驗證CSRF令牌真實性」
- 20. 的Rails 3:無法驗證CSRF令牌真實性
- 21. 無法在rails中驗證CSRF令牌的真實性
- 22. Rails的:無法驗證CSRF令牌真實性
- 23. 在會話過期後無法驗證CSRF令牌的真實性 - Rails + devise + redis
- 24. 使用render_to_string創建真實性令牌
- 25. Devise token auth無法驗證CSRF令牌的真實性
- 26. Ruby on Rails - 自定義令牌過期
- 27. Rails CSRF令牌 - 它們是否過期?
- 28. 設計+ Omniauth [警告:無法驗證CSRF令牌真實性]
- 29. 跨平臺請求無法驗證rails上的CSRF令牌真實性
- 30. Rails 4真實性令牌應該從形式到形式各不相同?
謝謝gg_s! GET'ing工作,我添加了jQuery(「#form」)。submit()來自動提交表單 – Craig