什么是文件URI的同源策略?

时间:2018-01-18 02:50:25

标签: javascript cross-domain

也许我的Google-Fu已经抛弃了我,但我无法找到除this outdated Mozilla page以外的文件URI的同源政策的良好描述。有人能指出我对文件URI的同源政策的解释吗?特别是,如果我从(例如)file:/// C:/Users/Joe/Test/test.html加载了一个脚本,那么该脚本允许使用XMLHttpRequest访问哪些文件?我应该如何指定URI,即相对于脚本的URI?

请注意,我并不是要求一种方法来解决跨源限制,只是了解我需要驻留资源的位置,以便我可以加载它们而不会触发跨源错误。

1 个答案:

答案 0 :(得分:1)

file:/// URI的同源策略取决于实现。

W3C's CORS spec从IETF RFC 6454 "The Web Origin Concept"获得其“来源”的定义。在section 4 "Origin of a URI"中的内容为:

  
      
  1. 如果uri-scheme是“文件”,则实现可以返回实现定义的值。

         

    注意:从历史上看,用户代理已从         文件方案具有极大的特权。然而,         授予所有本地文件如此广泛的权限可能导致         特权升级攻击。一些用户代理已经         成功授予本地文件基于目录的特权,但是         这种方法尚未得到广泛采用。其他用户代理         为每个文件URI使用全局唯一标识符,即         最安全的选择。

  2.   

要查找特定浏览器的行为(及其背后的原因)并不容易。实际上,我认为您所引用的旧Mozilla Wiki页面是该主题上较好的资源之一。 Here's a fairly helpful discussion;一般指导原则是假设浏览器可以将所有file:/// URI视为完全唯一的来源。

相关问题