Cordova - 白名单
此插件允许我们为应用的导航实施白名单策略。当我们创建新的 Cordova 项目时,将默认安装并实施 whitelist 插件。您可以打开 config.xml 文件以查看 Cordova 提供的 allow-intent 默认设置。
导航白名单
在下面的简单示例中,我们允许链接到某些外部 URL。此代码放置在 config.xml 中。默认情况下允许导航到 file:// URL。
<allow-navigation href = "http://example.com/*" />
星号 * 用于允许导航到多个值。在上面的例子中,我们允许导航到 example.com 的所有子域。这同样适用于协议或主机前缀。
<allow-navigation href = "*://*.example.com/*" />
Intent 白名单
还有 allow-intent 元素,用于指定允许哪些 URL 打开系统。您可以在 config.xml 中看到,Cordova 已经为我们允许了大多数所需的链接。
网络请求白名单
当您查看 config.xml 文件时,有 <access origin="*" /> 元素。此元素允许所有网络请求通过 Cordova 钩子发送到我们的应用程序。如果只想允许特定的请求,可以从config.xml中删除,自己设置即可。
原理和前面的例子一样。
<access origin = "http://example.com" />
这将允许来自 http://example.com 的所有网络请求。
内容安全策略
您可以在 index.html 中的 head 元素内查看应用的当前安全策略。
<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,您可以尝试一些不同的值。