【问题标题】:Security risks for using WebView (IOS,Android)使用 WebView (IOS,Android) 的安全风险
【发布时间】:2015-09-02 15:00:07
【问题描述】:

我是移动编程的初学者,想知道网页视图是否不好?我从我们公司的应用程序团队那里听说,启用 Web 视图本身就是一种安全风险(我们处理财务数据:))。

我打算用它来做一个简单的验证码,但我的问题更像是

从安全角度来看,Webview 是严格的 NO NO 吗?

请告诉我。

感谢任何帮助。

【问题讨论】:

标签: android ios security mobile webview


【解决方案1】:

这取决于您如何在应用中使用 WebView。例如,GMail 应用程序使用 WebView 以非常安全的方式查看电子邮件。如果您将任意 3rd-party 内容加载到 WebView 中,则会出现主要风险。浏览器通过在单独的进程中对网页进行沙箱处理来处理这个问题,因此即使页面代码利用了渲染引擎的某些安全漏洞并获得了对其的控制权,它仍然无法代表浏览器采取行动。 WebView 是单进程的,因此渲染器引擎中的任何安全漏洞实际上都会授予恶意代码与您的应用程序相同的权限。

所以基本上,安全使用 WebView 的规则 #1 是仅在其中加载受信任的内容。如果您需要显示用户提供的内容,请仅接受纯文本并对其进行清理。尽可能避免启用 JavaScript。定位您可以为您的应用提供的最新 API 级别 - 否则 WebView 可能会启用不安全的功能,以便与没有它们就无法运行的旧应用兼容。

【讨论】:

  • 非常感谢您的评论。 web 框架是一个单一的进程这一点是一个有效的关注点。我之所以评估这个是为了在 APP 中显示一个验证码。 Captcha 技术一起使用了一个 javascript,它在 webview 的一个 div 中加载内容。如果我们将第三方的内容加载到 webview 中的 IFrame 中,是否会变得更好。它不会获得整个页面的访问权限,而且在这种情况下,交互也是最少的。然而,对于 laod 验证码,他们从那里的服务器加载了一堆 javascript。
  • @AravindR:如果页面通过 JavaScript 利用某些渲染器漏洞,加载 iframe 将无济于事。如果您不完全信任您的第三方,则不应使用他们的任何代码。从安全的角度来看,将他们的代码加载到 WebView 与将他们的 Java 代码加载到您的应用程序中几乎没有任何区别:)
  • @MikhailNaganov 所以如果我信任第三方内容,我可以考虑启用 JavaScript 安全吗?播放商店显示警报,文档说:“如果您的应用程序不直接在 WebView 中使用 JavaScript,请不要调用 setJavaScriptEnabled()。一些示例代码使用此方法,您可能会在生产应用程序中重新使用该方法,因此请删除该方法如果不需要,请致电。”我在想的是如果需要js怎么办? Play 商店会拒绝我的应用更新吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-24
  • 1970-01-01
  • 2022-11-24
  • 2020-06-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多