1

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

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

例如,如果A.html文件物理存在于手机上并A.html包含服务器上B.html位置的 href,B.html那么(使用任何方式)是否可以B.html(使用任何方式)将文件(C.htmlD.js等)从服务器移动到设备上?

4

1 回答 1

1

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

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

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

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

    假设您的页面已打开http://mywebsite.comhttp://blah.org如果设置不正确,甚至(更危险)file:///etc/passwd(您无法正确设置),您将无法提出请求。

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

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

有一些漏洞(例如这个),其中 Safari 允许对文件系统进行非特权访问,但在大多数情况下,它们已被 Apple 快速修补,您不必(如果您想避免,也不应该这样做)不必要的头痛)担心他们。

于 2012-10-05T17:53:51.433 回答