2012-07-04 74 views
1

上一個PHP項目我正在努力,我想實施一個反XSRF機制。我生成一個隨機令牌,並將其存儲在我的會話$_SESSION['token']中。當我提交表單時,我會將我的會話令牌包含在隱藏字段中,並驗證transmitted token == stored tokenXSRF令牌應該存儲在cookie中還是會話中?

我的問題是,如果我將此令牌存儲在cookie中,安全影響如何?

例如,我認爲這兩種解決方案都可以利用,例如XSS,我無法看到哪個存儲最適合令牌。

感謝您的幫助。

回答

1

如果您按照正常程序生成令牌(類似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

相關問題