gpt4 book ai didi

security - REST 和 CSRF(跨站请求伪造)

转载 作者:行者123 更新时间:2023-12-02 20:58:33 25 4
gpt4 key购买 nike

是否可以针对无状态 RESTful 服务进行跨站点请求伪造?

我不是在谈论伪 REST,服务器会记住您是通过 cookie 登录的。我说的是没有 cookie 的纯服务器上无应用程序状态 REST。

我正在使用 SSL 和基本身份验证。对于每个请求,授权 header 都必须存在。尽管在 SSL 级别上存在某种 session ,但在 JSP 意义上并不存在“ session ”。

因此,假设我正在查看发出 Ajax 请求的合法网页,并且不知何故我转到同一选项卡或不同选项卡中的不同页面,并且该页面发出相同的 Ajax 请求。 (我假设合法网页上没有恶意代码;这是完全不同的事情,在这种情况下一切皆有可能。)

当第二个页面发出Ajax请求时,浏览器是否会放置相同的Authorization header ?即浏览器会说“哦,你想再去那里吗?嘿,我碰巧还有 key !”?

此外,恶意脚本不能执行 xhr 请求,然后在回调中从 ioargs 获取请求,获取授权 header 并对名称和密码进行 Un-Base64 编码吗?

最佳答案

免责声明:我不是安全专家。

使用 HTTP 基本身份验证并不能防止通过 GET 请求进行的 CSRF 攻击。例如。其他人可以在他们的 HTML 页面中包含一个 img 标签,该标签对一些众所周知的 URI 执行 GET,并且您的浏览器将很乐意发送基本的身份验证信息。如果 GET 操作是“安全的”(这是任何声称 RESTful 的第一条规则),那么这不会产生问题(除了浪费带宽之外)。

由于同源策略,Ajax 不是问题。

仅在您生成的 HTML 中包含服务器生成的 token ,并验证其在表单提交请求中的存在,将保护您免受其他人在其页面中简单包含“外来”表单的影响。您可以将其限制为浏览器生成的内容类型;对于 XHR 请求无需这样做。

关于security - REST 和 CSRF(跨站请求伪造),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2023395/

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