我们有一个为客户提供多种白标签解决方案的应用程序 - 这意味着它们托管在他们自己的域中。如何动态更改科尔多瓦白名单?
我们有一个科尔多瓦应用程序,我们希望用户可以使用此应用程序访问所有这些网站,但是我不想每次我们签署新客户时都要重新部署。
- 有没有办法通过url或其他方式加载白名单?这意味着我们可以通过我们的数据库即时添加域名。
- 当您将所有网址列入白名单时,是否存在巨大的安全风险?
https://cordova.apache.org/docs/en/latest/guide/appdev/whitelist/
例
为了澄清,我很想有像一个网址,它加载每次启动时的白名单设置,您可以指向。
http://myexampledomain.com/whitelist.config
<allow-navigation href="*.myexampledomain.com/*" />
<allow-navigation href="*.subdomain.someclientdomain.com/*" />
<allow-navigation href="*.subdomain.someclientdomainb.com/" />
<allow-navigation href="*.subdomain.someclientdomainc.com/" />
...这个文件将在启动时自动加载。
创建JS基于插件
如果不是当前的解决方案,是可以通过创建一个(基于JavaScript)科尔多瓦插件来做到这一点安全?与我们尝试加载的网址在白名单外部时手动重定向一样?
这意味着我们将科尔多瓦列入白名单并使用我们自己的插件来阻止我们自己的白名单外的所有内容。
(我知道,当我们的数据库被攻破,这不是安全的,但在这种情况下,我们一般的更大的问题。我们的应用程序是为了好玩,并且不依赖于关键功能)
我不认为有一个简单的方法。我能想到的一种方法是将允许导航设置为*通配符,并将所有请求路由到服务器端,以处理过滤器中的请求过滤并重定向到相应的URL – Gandhi
Dirk,您的目标平台是什么? ?如果包含iOS,恐怕没有什么可以轻松做到的。这是因为根据文档白名单似乎使用[NSAppTransportSecurity](https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33),其中转到编译的应用程序(包)的属性文件。并且该配置由iOS/Apple的网络框架本身处理,因此您无法“实时”更改它。所以你的自定义插件可能是唯一的方法。 – SergGr