关于XMLHttpRequest的同源限制

时间:2012-04-08 08:52:54

标签: javascript xmlhttprequest same-origin-policy

我认为我对XMLHttpRequest的相同原点限制有些不明白。

而不是禁止Javascript代码向不同的主机发送http请求(这对于合法用途来说真的很烦人)不仅仅是允许请求而不是在这种情况下发送或接受cookie会更好吗?

禁止使用特定的脚本来获取互联网上其他所有人可以获得的东西,在第一眼就看到了一个非常奇怪的选择......

我错过了什么?

2 个答案:

答案 0 :(得分:2)

  

而不是禁止Javascript代码向不同的主机发送http请求(这对于合法用途来说真的很烦人)不仅仅是允许请求而不是在这种情况下发送或接受cookie会更好吗?

这就是Cross-Origin Resource Sharing (CORS)指定的内容。

  

使用用户凭据进行跨源请求时,应用程序必须始终小心,处理此类请求的服务器必须注意使用凭据,包括Origin标头。

     
      
  1. 当请求具有除检索之外的重要性,并且当依赖Origin头作为凭证时,服务器必须小心区分授权请求和授权访问响应中该资源的表示。
  2.         

    ...

         

    omit credentials flag

         

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


  

禁止使用特定的脚本来获取互联网上其他所有人可以获得的东西,在第一眼就看到了一个非常奇怪的选择......

     

我错过了什么?

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

答案 1 :(得分:0)

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