Cordova - 白名单



此插件允许我们为应用的导航实现白名单策略。当我们创建一个新的 Cordova 项目时,白名单插件默认安装并实现。您可以打开config.xml文件查看 Cordova 提供的allow-intent默认设置。

导航白名单

在下面的简单示例中,我们允许链接到一些外部 URL。此代码位于config.xml中。默认情况下允许导航到file:// URL。

<allow-navigation href = "http://example.com/*" />

星号 * 用于允许导航到多个值。在上面的示例中,我们允许导航到example.com的所有子域。这同样适用于协议或主机的前缀。

<allow-navigation href = "*://*.example.com/*" />

意图白名单

还有一个allow-intent元素,用于指定允许哪些 URL 打开系统。您可以在config.xml中看到 Cordova 已经为我们允许了大多数需要的链接。

网络请求白名单

当您查看config.xml文件时,会有<access origin="*" />元素。此元素允许通过 Cordova hook 向我们的应用程序发出所有网络请求。如果您只想允许特定请求,可以将其从 config.xml 中删除并自行设置。

使用的原理与之前的示例相同。

<access origin = "http://example.com" />

这将允许来自http://example.com的所有网络请求。

内容安全策略

您可以在index.htmlhead元素中看到您的应用程序的当前安全策略。

<meta http-equiv = "Content-Security-Policy" content = "default-src 
   'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 
   'self' 'unsafe-inline'; media-src *">

这是默认配置。如果您想允许来自同一来源和example.com的所有内容,则可以使用 -

<meta http-equiv = "Content-Security-Policy" content = "default-src 'self' foo.com">

您也可以允许所有内容,但将 CSS 和 JavaScript 限制在同一来源。

<meta http-equiv = "Content-Security-Policy" content = "default-src *; 
   style-src 'self' 'unsafe-inline'; script-src 'self' 
   'unsafe-inline' 'unsafe-eval'">

由于这是一个初学者教程,我们推荐使用默认的 Cordova 选项。一旦您熟悉了 Cordova,您可以尝试一些不同的值。

广告
© . All rights reserved.