【问题标题】:XSRF and SOP, different outcome with apparently similar requestsXSRF 和 SOP,具有明显相似请求的不同结果
【发布时间】:2020-07-28 06:26:40
【问题描述】:

我正在尝试了解更多关于 XSRF 以及 SOP 的信息,我阅读了很多书,并且我或多或少清楚地知道应该发生什么和不应该发生什么,但我不知道为什么我'在以两种不同的方式执行相同的事情(我假设)时获得不同的结果。

可能类似问题的相同基本场景,goodsite.combadsite.com; badsite 想使用用户的 cookie 在 goodsite.com 上发出 GET 请求。 我能够以几种不同的方式完成这项工作,一个带有 onload 发送的表单,一个带有 onclick 功能的按钮,它们都正常工作,发出查询(并且由于 SOP,我看不到响应) .

但是我不知道为什么这不起作用

xhReq = new XMLHttpRequest();
xhReq.open("GET", "https://goodsite.com/doStuff");
xhReq.withCredentials=true;
xhReq.send();

此代码与所有其他工作解决方案具有相同的设置/参数,但我的浏览器阻止了此错误。

Access to XMLHttpRequest at 'https://goodsite.com/doStuff' from origin 'https://badguy.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我错过了什么?谢谢。

【问题讨论】:

    标签: cookies xmlhttprequest xss csrf


    【解决方案1】:

    是 javascript CORS 策略。服务器发送一个标头告诉浏览器“嘿,我不希望我的白名单之外的任何人使用 javascript 向我发送请求”。

    是一种安全机制,可以避免读取请求 cookie 标头等事情。

    您可以使用服务器来避免它。网上有一些像https://cors-anywhere.herokuapp.com/ 如果您要跨源获取某些内容,只需将 url 添加到此链接。

    扩展名:https://portswigger.net/web-security/cors

    【讨论】:

      猜你喜欢
      • 2014-08-17
      • 2023-03-15
      • 2022-01-10
      • 1970-01-01
      • 2018-11-01
      • 1970-01-01
      • 2019-04-18
      • 1970-01-01
      • 2022-08-05
      相关资源
      最近更新 更多