上一個PHP項目我正在努力,我想實施一個反XSRF機制。我生成一個隨機令牌,並將其存儲在我的會話$_SESSION['token']
中。當我提交表單時,我會將我的會話令牌包含在隱藏字段中,並驗證transmitted token == stored token
。XSRF令牌應該存儲在cookie中還是會話中?
我的問題是,如果我將此令牌存儲在cookie中,安全影響如何?
例如,我認爲這兩種解決方案都可以利用,例如XSS
,我無法看到哪個存儲最適合令牌。
感謝您的幫助。
上一個PHP項目我正在努力,我想實施一個反XSRF機制。我生成一個隨機令牌,並將其存儲在我的會話$_SESSION['token']
中。當我提交表單時,我會將我的會話令牌包含在隱藏字段中,並驗證transmitted token == stored token
。XSRF令牌應該存儲在cookie中還是會話中?
我的問題是,如果我將此令牌存儲在cookie中,安全影響如何?
例如,我認爲這兩種解決方案都可以利用,例如XSS
,我無法看到哪個存儲最適合令牌。
感謝您的幫助。
如果您按照正常程序生成令牌(類似sha1($username.$private_per_session_passphrase)
),我認爲它沒有多大區別,您可以將令牌放入cookie或會話var中,並且您應該清除CSRF漏洞。
需要考慮的主要問題是,只有在將收到的令牌與您的(cookie/session)進行匹配之後,POST才能成功。換句話說,頁面請求不應該是自包含的。
這些可能是有趣:
而本文介紹CSRF + XSS攻擊:
https://www.htbridge.com/publications/xss_csrf_practical_exploitation_of_post_authentication_vulnerabilities_in_web_applications.html