我想知道ASP.NET如何檢查防僞令牌是否有效?像ASP.NET存儲這些令牌的位置一樣?他們如何儲存?ASP.NET如何驗證防僞令牌
15
A
回答
22
簡短版本是生成的令牌存儲在2個地方:(a)cookie(b)隱藏的表單值。當提交表格時,這兩個值相互比較以確定它們是否有效。進一步閱讀:
http://www.asp.net/web-api/overview/security/preventing-cross-site-request-forgery-(csrf)-attacks http://www.codeproject.com/Articles/793384/ASP-NET-Anti-Forgery-Tokens-internals
5
一個階梯式的解釋比接受的答案恕我直言更清晰(從https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/preventing-cross-site-request-forgery-csrf-attacks)
- 客戶端請求包含一個表單的HTML頁面。
- 服務器在響應中包含兩個令牌。一個令牌作爲cookie發送。另一個放置在隱藏的表單字段中。令牌是隨機生成的,因此對手無法猜測值。
- 當客戶端提交表單時,它必須將兩個令牌都發送回服務器。客戶端將cookie標記作爲cookie發送,並在表單數據內發送表單標記。 (瀏覽器客戶端在用戶提交表單時自動執行此操作。)
- 如果請求不包括這兩個標記,則服務器將禁止該請求。
0
上面的描述是不是所有的東西做,在AjaxRequest的情況下,防僞,特別是在GET請求,通常不會與比較隱蔽值發送表單,而不是你需要設置一個標頭值與JavaScript的相同的內容通過JavaScript ..你應該設置的標題名稱是默認的X-XRF-Token標頭[與angularjs有關] ...當然,你需要禁用CORS或只爲特定域啓用它爲了保護API,SAMEORIGIN也需要設置爲避免點擊劫持。
相關問題
- 1. 在ASP.NET 5中手動防僞令牌創建和驗證
- 2. 帶Durandal SPA模板的MVC身份驗證和防僞令牌
- 3. 如何驗證SAML令牌
- 4. 驗證防僞的問題
- 5. ASP.MVC防僞令牌和加密錯誤
- 6. 無法解密防僞令牌
- 7. 防僞令牌網絡API 2
- 8. csrf和防僞造令牌在MVC 2,不想驗證AJAX帖子
- 9. 令牌驗證方法如何工作以防止在asp.net中的CSRF mvc3
- 10. 驗證訪問令牌 - Asp.Net身份
- 11. Facebook身份驗證令牌和asp.net mvc
- 12. 在基於令牌的身份驗證中,令牌如何驗證?
- 13. 如何使用防僞造令牌與ajax wcf服務
- 14. 如何插入防僞造令牌使用Clojure Enlive
- 15. Asp.net Mvc:jquery post數組+反僞造令牌
- 16. azure-ad-jwt它如何驗證令牌
- 17. 如何使用設計驗證令牌
- 18. 如何驗證此ADFS令牌?
- 19. 如何驗證Google ID令牌?
- 20. 如何驗證ASP.NET Identity 2.0中的不記名令牌?
- 21. oAuth2春季令牌驗證/驗證
- 22. 如何驗證Google身份驗證API訪問令牌?
- 23. 如何根據Firebase驗證身份驗證令牌?
- 24. 解密/驗證Firebase令牌
- 25. Django Rest Framework令牌驗證
- 26. Firebase驗證ID令牌
- 27. NodeJS JWT令牌驗證
- 28. IdentityServer4令牌簽名驗證
- 29. AWS Cognito JWT令牌驗證
- 30. 令牌驗證和過期
實際上會生成兩個令牌。不只是一個存儲在兩個地方。 – 2017-06-26 12:59:15