尝试访问URL以获取Cordova应用中的数据但收到404错误。该日志显示白名单阻止的URL:http://urlhere。
我已经安装了白名单插件,添加在/platforms/android/config.xml文件中,http:// urlhere; style-src' self' '不安全直插&#39 ;; script-src' self' '不安全直插' '不安全-EVAL'">在html文件中。
在Android Studio 2.2.3中运行。
答案 0 :(得分:0)
此插件允许我们为应用程序的导航实施白名单策略。当我们创建新的Cordova项目时,默认情况下会安装并实施白名单插件。您可以打开 config.xml 文件,查看Cordova提供的 allow-intent 默认设置。
导航白名单
默认情况下,允许导航到 file:// 网址。
<allow-navigation href = "http://example.com/*" />
星号,* 用于导航到多个值。在上面的示例中,我们允许导航到 example.com 的所有子域。同样可以应用于主机的协议或前缀。
<allow-navigation href = "*://*.example.com/*" />
Intent Whitelist
还有 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'">