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

Javascript 远程html文件是否可以将文件下载到客户端?,javascript,html,Javascript,Html,我是一名iOS开发人员,正在研究本机iPhone应用程序的一些安全方面,该应用程序将本地html页面加载到UIWebView(这是为本机应用程序提供浏览器功能的iOS类) 如果应用程序加载本地html文件,并且该文件包含指向外部html文件的链接,那么该外部文件是否可以将文件下载到客户端(另一个html文件或javascript文件)?我对html/javascript的了解在这方面不够详细 例如,如果A.html文件实际存在于手机上,并且A.html包含A href toB.html,其中B.

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

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


例如,如果
A.html
文件实际存在于手机上,并且
A.html
包含A href to
B.html
,其中
B.html
位于服务器上,那么
B.html
(使用任何方式)是否可以移动文件(
C.html
D.js
等)从服务器到设备?

您可能的意思是:HTML页面是否能够在设备上下载(并可能执行或覆盖)内容/代码?我只是想在下面假设一下

  • 首先,未经用户同意,浏览器不能下载任何内容。尤其是在iOS上,浏览器实际上根本无法下载任何东西。(实际上,你可以长按图片下载,但它们只会进入照片卷。任何其他下载都会失败。)

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

  • 此外,由于同源策略,网页无法访问其域以外的任何内容(跨源请求允许此操作,但要求服务器发送特定的标头)

    假设您的页面位于
    http://mywebsite.com
    :您不能向
    http://blah.org
    如果设置不正确,甚至(更危险)到
    file:///etc/passwd
    (您无法正确设置)

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

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


例如,Safari允许对文件系统进行未经授权的访问,但在大多数情况下,苹果已迅速修补了这些漏洞,您不必这么做(如果您想避免不必要的麻烦,也不应该这么做)担心它们。

您的意思可能是:HTML页面是否能够在设备上下载(并可能执行或覆盖)内容/代码?我只是想在下面假设一下

  • 首先,未经用户同意,浏览器不能下载任何内容。尤其是在iOS上,浏览器实际上根本无法下载任何东西。(实际上,你可以长按图片下载,但它们只会进入照片卷。任何其他下载都会失败。)

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

  • 此外,由于同源策略,网页无法访问其域以外的任何内容(跨源请求允许此操作,但要求服务器发送特定的标头)

    假设您的页面位于
    http://mywebsite.com
    :您不能向
    http://blah.org
    如果设置不正确,甚至(更危险)到
    file:///etc/passwd
    (您无法正确设置)

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

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


有一些漏洞(例如Safari允许对文件系统进行无特权访问),但在大多数情况下,它们已被苹果迅速修补,您不必担心(如果您想避免不必要的麻烦,也不必担心)。

我不确定您的意思,您能提供更多详细信息吗?你说的是JavaScript XMLHttpRequests吗?如果A.html文件实际存在于手机上,并且A.html包含A href to B.html,而B.html位于服务器上,那么B.html(使用任何方式)是否可以将文件(C.html或D.js等)从服务器移动到设备上?如果单击B-link,WebView将显示B.html。所以它将自己移动到了设备上,对吗?如果在UIWebView上加载了B.html,它可以使用JavaScript从同一个域加载其他文件,并将文件内容存储在一个变量中。我对iOS开发了解不多,但是如果UIWebView提供了一个js接口,并且能够写入设备的文件系统,那么是的,这应该是可能的。我不确定你的意思,你能提供更多细节吗?你说的是JavaScript XMLHttpRequests吗?如果A.html文件实际存在于手机上,并且A.html包含A href to B.html,而B.html位于服务器上,那么B.html(使用任何方式)是否可以将文件(C.html或D.js等)从服务器移动到设备上?如果单击B-link,WebView将显示B.html。所以它将自己移动到了设备上,对吗?如果在UIWebView上加载了B.html,它可以使用JavaScript从同一个域加载其他文件,并将文件内容存储在一个变量中。我对iOS开发了解不多,但是如果UIWebView提供了一个js接口,并且能够写入设备的文件系统,那么是的,这应该是可能的。