gpt4 book ai didi

android - 是否可以限制对文件 ://through Content Security Policy (CSP) 的任意访问

转载 作者:行者123 更新时间:2023-11-29 18:35:37 27 4
gpt4 key购买 nike

我可以通过 Content-Security-Policy 限制对不同来源的访问在 html 中。但是为了浏览 file:// , 它似乎允许文件系统中的任何位置的文件。

我试过用

<meta http-equiv="Content-Security-Policy" content="default-src 'none'">

当我使用 file://path/to/myfile.html 加载它时,并使用 <a href="file:///var/log/system.log">System</a> , 我可以点击查看系统日志的内容。

我的问题:对于 file:// 是否可以将资源加载或导航限制为仅子文件夹而不是文件系统上的所有内容?网址?

我试过 Google Chrome 版本 71.0.3578.98 (Official Build) (64-bit)苹果操作系统 10.12.6。

编辑:在 Apache Cordova 8.1.2 上提供以下真实案例:

使用 cordova create HelloWorld 创建新项目.然后编辑HelloWorld/www/index.html并添加 <div><a href="file:///etc/hosts">System</a></div> .

然后做cordova platform add androidcordova run android .点击 System链接和/etc/hosts可以查看,即使我把CSP改成了<meta http-equiv="Content-Security-Policy" content="default-src 'none'"> (至少在我的无根手机上)。

最佳答案

由于您还没有托管您的页面,它在href 中工作,但是一旦您将它托管在某个地方,您网站的实际 URL 将以 http 开头:https: 而不是 file:然后使用 CSP,它会默认阻止文件系统。

当您打开本地创建的 html 时,浏览器只是将其作为文件读取。检查 chrome 中的开发人员选项并查看网络选项卡,您会注意到以下内容:

  1. 没有 HTTP 响应,因为它只是作为文件读取并且不由服务器提供服务。
  2. 没有 HTTP 响应代码,而是显示为已完成。
  3. HTTP 响应 header 告诉浏览器限制和允许的内容。 (CSP 最好在 HTTP 响应中发送并在托管服务器上配置)。 meta 标记只是一个后备标记。

尝试托管您的网站,如果您的 CSP 限制来源,您将看到状态代码 403 或类似内容。

希望这能消除您的疑虑。

关于android - 是否可以限制对文件 ://through Content Security Policy (CSP) 的任意访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54493929/

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