gpt4 book ai didi

html - 使用 CORS 的 CSRF

转载 作者:可可西里 更新时间:2023-11-01 14:51:50 24 4
gpt4 key购买 nike

我正在研究 HTML5 的安全问题。我看到了 Shreeraj Shah 所做的所有演示。我尝试使用我自己的服务器模拟基本的 CSRF 攻击,使用 withCredentials 标记设置为 true(因此在响应消息中应该重播 cookie)并在请求中将 Content-Type 设置添加到 text/plain(以绕过预检调用) .当我试图开始攻击时,浏览器告诉我,由于 Access-Control-Allow-Origin header ,XMLHttpRequest 无法完成。所以我在受害者网页的标题中放了一个 * ,浏览器告诉我,当我发送一个 withCredentials 设置为 true 的请求时,我不能使用 * 字符。我尝试对存储在同一个域中的网络应用程序做同样的事情,一切都很好(我想这是因为浏览器不检查请求是否来自同一个域)。

请问,这是现代浏览器为了避免此类问题最近设置的新功能吗?因为在 Shreeraj 的视频中,请求是跨不同域的,并且有效...

谢谢大家,对不起我的英语:-)

编辑:

我想我找到了 CSRF 攻击无法像 Shreeraj 的演示那样正常工作的原因。我看了之前2010年发布的CORS文档,发现没有任何关于当Access-Control-Allow-Origin设置为*时with credential flag设置为true的建议,但是如果我们看最后两个关于 CORS(2012 年和 2013 年)的出版物,在第 6.1 节中,其中一个注释是如果 Access-Control-Allow-Origin 设置为 *,我们不能使用设置为 true 的凭据标志发出请求。

链接如下:

上一个 (2010):http://www.w3.org/TR/2010/WD-cors-20100727/

最后两个(2012 年、2013 年):http://www.w3.org/TR/2012/WD-cors-20120403/ --- http://www.w3.org/TR/cors/

这是我正在谈论的部分:http://www.w3.org/TR/cors/#supports-credentials

如果我们查看以前的文档,我们找不到它,因为没有。

我认为这就是为什么 Shreeraj Shah 在 2012 年发起的简单 CSRF 攻击如今不起作用的原因(当然在遵循 w3c 推荐的现代浏览器中)。可以吗?

最佳答案

尽管浏览器出现错误(如果没有预检),请求仍会发出。

Access-Control-Allow-Origin 只是允许访问来自不同域的响应,它不会影响实际的 HTTP 请求。

例如即使 example.com< 没有设置 CORS header ,evil.com 仍然可以向 example.com/transferMoney 发出 POST 请求 使用 AJAX。

关于html - 使用 CORS 的 CSRF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17642114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com