我們正在使用asp.net MVC開箱即用的安全AntiCSRF。我們有很多使用AJAX POST和JSON的表單。ASP.NET MVC AntiCrsf令牌是否依賴機器密鑰
該應用程序將使用3個Web服務器負載均衡託管在Azure中。
可有人請澄清如下:
如何ASP.NET生成CSRF令牌?
如果它使用計算機密鑰,是否需要配置任何內容以確保請求能夠在Azure非粘性負載平衡上運行?
謝謝。
我們正在使用asp.net MVC開箱即用的安全AntiCSRF。我們有很多使用AJAX POST和JSON的表單。ASP.NET MVC AntiCrsf令牌是否依賴機器密鑰
該應用程序將使用3個Web服務器負載均衡託管在Azure中。
可有人請澄清如下:
如何ASP.NET生成CSRF令牌?
如果它使用計算機密鑰,是否需要配置任何內容以確保請求能夠在Azure非粘性負載平衡上運行?
謝謝。
它作爲cookie發送並隱藏在HTML表單域中,兩者在提交時必須相同。
這個想法是,cookie不能被外部攻擊者設置。
http://www.asp.net/web-api/overview/security/preventing-cross-site-request-forgery-(csrf)-attacks
基礎上防僞類的源代碼,我可以斷定,它使用的machineKey導出令牌:
儘管在ASP.NET場部署的最佳實踐出於其他原因(使用表單身份驗證,Viewstate簽名和其他安全相關項目時的身份驗證Cookie)使用相同的機器密鑰。無論防僞標記如何,我都會選擇在整個農場同步它們。這將是另一個原因:)。
我明白了。我的問題是如何使用機器密鑰生成令牌。如果是的話,所有的網絡服務器(負載均衡)需要有相同的密鑰 –
我不這麼認爲,這是一個隨機值 –