javascript - 客户端生成双重提交cookie,防止跨站请求伪造

标签 javascript csrf

双重提交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/

相关文章:

javascript - 如何在 Angular Charts 的极地面积图的鼠标悬停时自定义工具提示

javascript - 如何重新创建 div

python - Django 管理员提出 CSRF 验证失败

python - CSRF验证失败。请求中止。//Dajaxice,Ajax

javascript - CSRF 禁止在我的注册表上显示,不知道为什么

python - Django 应用程序在本地运行,但我在 Heroku 上的 CSRF 验证失败

javascript - 关于将元素保存到 DOM 和选项卡的 jQuery 问题

javascript - 将数据从 JQuery on click 函数传递到 PHP 服务器?

php - 如何使用 jQuery、PHP 和 MySQL 加载 JSON 数据

java - 监听所有表单提交事件并在任何其他附加事件处理程序之前执行功能