Php XSRF令牌应该存储在cookie中还是会话中?
在我正在从事的一个PHP项目中,我想实现一个反XSRF机制。我正在生成一个随机令牌,并将其存储在会话中Php XSRF令牌应该存储在cookie中还是会话中?,php,session,cookies,token,csrf,Php,Session,Cookies,Token,Csrf,在我正在从事的一个PHP项目中,我想实现一个反XSRF机制。我正在生成一个随机令牌,并将其存储在会话中$\u会话['token']。提交表单时,我将会话令牌包含在一个隐藏字段中,并验证传输的令牌==存储的令牌 我的问题是,如果我将此令牌存储在cookie中,会对安全造成什么影响 例如,我认为这两种解决方案在XSS的情况下都是可以利用的,我不知道哪个存储最适合令牌 感谢您的帮助。如果您按照正常的过程生成令牌(类似于sha1($username.$private\u per\u session\u
$\u会话['token']
。提交表单时,我将会话令牌包含在一个隐藏字段中,并验证传输的令牌==存储的令牌
我的问题是,如果我将此令牌存储在cookie中,会对安全造成什么影响
例如,我认为这两种解决方案在XSS
的情况下都是可以利用的,我不知道哪个存储最适合令牌
感谢您的帮助。如果您按照正常的过程生成令牌(类似于
sha1($username.$private\u per\u session\u passphrase)
),我认为这没有多大区别,您可以将令牌放在cookie或session var中,并且应该清除CSRF漏洞
主要考虑的是,直到您将接收到的令牌与您的令牌匹配(Cookie/session),POST才能成功。换句话说,页面请求不应该是自包含的
这些可能很有趣:
如果您按照正常过程生成令牌(类似于
sha1($username.$private\u per\u session\u passphrase)
),我认为这没有多大区别,您可以将令牌放在cookie或session var中,并且应该清除CSRF漏洞
主要考虑的是,直到您将接收到的令牌与您的令牌匹配(Cookie/session),POST才能成功。换句话说,页面请求不应该是自包含的
这些可能很有趣: