双重提交cookie csrf防范方案中,服务器是否需要提供cookie?
看来我可以让客户端页面上的javascript生成并设置一个cookie“anti_csrf”,然后双重提交(一次作为cookie,由浏览器完成,一次在请求正文中)。
外部域将无法读取或写入“anti_csrf”cookie 以将其包含在请求正文中。
这安全吗,还是我忽略了什么?
最佳答案
Tgr,请阅读以下内容:
http://jazzy.id.au/default/2010/09/20/cracking_random_number_generators_part_1.html
攻击者所需要的只是从随机数生成器中获取一两个 token ,然后他们可以预测每个后续和每个先前的随机数(如果它不是加密安全的)。如果随机数生成是在 Javascript 客户端完成的,我不知道有哪个浏览器使用加密安全随机数生成器,因此他们只需调用 Math.random() 几次,就可以计算出什么已为您的 cookie 生成 token 。
关于javascript - 客户端生成双重提交cookie,防止跨站请求伪造,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2561564/