在隐藏字段中添加反CSRF令牌真的可以抵御CSRF攻击吗?

问题描述 投票:0回答:1

如果攻击者可以读取隐藏字段,那么在隐藏字段中发送反CSRF令牌有什么用?

我正在准备面试并遇到CSRF。我知道CSRF是可能的,因为每当我们的浏览器向我们发送登录请求的网站时,它也会自动发送Cookie。为了使真实服务器知道用户是否确实发出了请求,this article建议在浏览器发送的每个请求中都添加一个反CSRF令牌作为隐藏值。这样,可靠的服务器将知道哪个请求是伪造的,哪个不是伪造的,因为攻击者无法预测反CSRF令牌。

但是this post说,攻击者可以轻松看到隐藏的值。这是否会使上述建议的缓解措施无效?我很困惑。

html security web csrf
1个回答
0
投票

上下文和对细节的关注很重要。

[对于初学者,对Web security, are there issues with hidden fields (no sensitive data)?的回答并不是说攻击者可以“轻松地”看到隐藏的值,而是像查看查询字符串参数一样“简单”-这是比较,而不是绝对的。

然后,您必须考虑攻击者是谁。辩论隐藏字段和查询参数意味着仅仅隐藏用户不应该看到的值-攻击者是访问页面的常规用户。另一方面,在最通用的情况下,CSRF涉及第三方诱骗用户提交表单。攻击者是第三方,并且(除非存在其他漏洞)不能仅读取用户的数据。

最后,您链接的博客文章中描述的保护技术不仅依赖于隐藏字段,还与存储在Cookie中的令牌相结合-这被称为Double Submit Cookie模式,是一本教科书。 CSRF保护机制。攻击者需要匹配[[both表单和Cookie令牌,才能成功进行攻击。

是的,博客文章中概述的解决方案确实可以防止CSRF攻击。
© www.soinside.com 2019 - 2024. All rights reserved.