我發現requireSSL="true"
房產在無擔保服務器(無SSL) web.config
代碼行在UAT - <httpCookies httpOnlyCookies="true" requireSSL="true" lockItem="true" />
。如何解決CSRF和[在加密會話(SSL)Cookie中缺少安全屬性]問題與requireSSL =「true」?
對於CSRF(跨站請求僞造)修復,我們使用:
var requestCookie = Request.Cookies[AntiXsrfTokenKey];
我們不能讀取不安全服務器的安全cookie。因此,對於不安全的服務器,requireSSL屬性在web.config中應該爲false。
如果我們製作requireSSL="false"
CSRF修復工作正常,但所有的cookie變得不安全,併產生其他問題[Missing Secure Attribute in Encrypted Session (SSL) Cookie]
。
我們還附加了CSRF修復代碼,其中功能PreventCSRF()
被OnInit(EventArgs e)
事件調用Default.aspx.cs
頁面中。
在本地我們沒有SSL,requireSSL="false"
與CSRF修復正常工作,但不是[Missing Secure Attribute in Encrypted Session (SSL) Cookie]
。所以修復CSRF和[Missing Secure Attribute in Encrypted Session (SSL) Cookie]
問題都依賴於對方。
有2個查詢 -
如UAT,SSL在負載均衡的水平管理,IIS盒沒有安裝在他們的SSL證書。我們可以使用
Request.Cookies[AntiXsrfTokenKey]
讀取安全cookie嗎?如果我們做的是
requireSSL="false"
,那麼CSRF修復工作正常,但所有cookie變得不安全意味着所有的cookie都會持續存在[Missing Secure Attribute in Encrypted Session (SSL) Cookie]
問題。