在双重提交的cookie csrf防护方案中,服务器是否需要提供cookie?
似乎我可以让客户端页面上的javascript生成并设置cookie "anti_csrf",然后双重提交(一次作为cookie,由浏览器完成,一次在请求的主体中)。
外部域将无法读取或写入"anti_csrf“cookie以将其包含在请求正文中。
这是安全的吗,还是我忽略了什么?
发布于 2010-10-19 07:29:20
Tgr,读一下这个:
http://jazzy.id.au/default/2010/09/20/cracking_random_number_generators_part_1.html
攻击者所需要的就是从随机数生成器中获得一个或两个令牌,然后如果随机数不是加密安全的,他们就可以预测每个后续和之前的随机数。如果随机数生成是在客户端使用Javascript完成的,我不知道有哪个浏览器使用加密安全的随机数生成器,所以他们只需调用Math.random()几次,就可以确定为您的cookie生成了什么令牌。
发布于 2010-04-01 23:39:10
如果用户已经为您的域设置了"anti_csrf“cookie,那么CSRF攻击者就可以回家了!HTTP请求将与cookie一起发出,当然,如果您知道该参数的值是什么,那么在POST中包含该参数也很容易。
cookie名称不必是秘密,但cookie值必须是只有用户会话知道的难以猜测的秘密。这样,攻击者就不知道(也不能猜测)在攻击HTTP事务中放入什么内容。
如果您将代码放在组成Cookie值的页面上,那么您必须假定攻击者可以在您的站点获得他/她自己的会话(即,有效的“真正”登录),并直接检查代码。如果很容易弄清楚cookie值是如何在客户端生成的(对于人类已知的几乎任何客户端解决方案,都是如此),那么攻击者也可以让他们的攻击页面在攻击帖子中包含正确的参数值。
发布于 2010-05-09 03:13:06
乍一看,这似乎很安全,但这意味着没有javascript的用户将无法使用您的表单。
https://stackoverflow.com/questions/2561564
复制相似问题