关于 XMLHttpRequest 上的同源限制

About same-origin limitation on XMLHttpRequest

本文关键字:XMLHttpRequest 关于      更新时间:2023-09-26

我认为我对XMLHttpRequest的同源限制有些不了解。

与其禁止 Javascript 代码向不同的主机发送 http 请求(这对于合法用途来说真的很烦人),不如只允许请求但不发送或接受 cookie 在这种情况下

禁止一个特定的脚本来获得互联网上其他人都可以得到的东西,在我看来乍一看似乎是一个非常奇怪的选择......

我错过了什么?

与其禁止 Javascript 代码向不同的主机发送 http 请求(这对于合法用途来说真的很烦人),不如只允许请求但不发送或接受 cookie 在这种情况下

这就是跨源资源共享 (CORS) 指定的。

在使用

用户凭据发出跨源请求时,应用程序必须始终小心,处理此类请求的服务器在使用凭据(包括 Origin 标头)时必须小心。

  1. 当请求具有检索以外的意义时,并且当依赖 Origin 标头作为凭据时,服务器必须小心区分授权请求和授权访问响应中该资源的表示形式。

省略凭据标志

设置何时在请求中排除用户凭据以及何时在其响应中忽略 cookie。

<小时 />

禁止一个特定的脚本来获得互联网上其他人都可以得到的东西,在我看来乍一看似乎是一个非常奇怪的选择......

我错过了什么?

Web标准机构花了一段时间才意识到人们想要编写严肃的JavaScript繁重的应用程序。 Gmail改变了这一切,但像W3C这样的标准机构需要一段时间来填补功能漏洞。

您的建议最初将避免用户数据被利用,但这仍然意味着代码可以从任何其他潜在的恶意域运行,然后该域可以读取和传输该cookie数据,而无需在请求中隐式发送。我想现在的情况是安全性和灵活性之间的最佳折衷方案。