远程html文件是否可以将文件下载到客户端?

时间:2012-10-05 17:17:42

标签: javascript html

我是一个iOS开发人员,正在研究本机iPhone应用程序的一些安全方面,它将本地html页面加载到UIWebView(这是为本机应用程序提供浏览器功能的iOS类)。

如果应用程序加载本地html文件并且该文件包含指向外部html文件的链接,那么该外部文件是否可以将文件下载到客户端(另一个html文件或javascript文件)?我对html / javascript的了解不够详细。

E.g。如果A.html文件实际存在于手机上且A.html包含h B.html,其中B.html位于服务器上,那么B.html是否可以使用{无论如何)将文件(C.htmlD.js等)从服务器移动到设备上?

1 个答案:

答案 0 :(得分:1)

您可能意味着:HTML页面是否能够下载(并可能执行或覆盖)设备上的内容/代码?我将在下面假设它。

  • 首先,未经用户同意,浏览器不应该能够下载任何内容。在iOS上尤其如此,浏览器实际上根本无法下载任何东西。 (嗯,你可以通过长按它们来实际下载图像,但它们只会进入Photo Roll。任何其他下载都会失败。)

  • HTML页面(以及JavaScript,图片,...)当然会在浏览器之前下载到设备或UIWebView显示它们,但是无法访问文件系统上的任何内容

  • 此外,由于同源政策,网页无法访问其域外的任何内容跨源请求允许这样做,但它们需要服务器发送特定的标题。)

    说明您的网页已在http://mywebsite.com:如果http://blah.org设置不正确,甚至(更加危险)file:///etc/passwd(您拥有),则无法向{{1}}提出请求无法正确设置)。

  • 我不确定本地网页,但(至少在桌面版Chrome浏览器上)本地网页 根本无法下载任何内容

当然,所有这些都是预期的行为。

存在漏洞(例如this one)的情况,其中Safari允许非特权访问文件系统,但在大多数情况下,它们已经被Apple快速修补,您不必(并且不应该如果你想避免不必要的麻烦,请担心它们。