如何动态更改Cordova白名单?

Dir*_*oer 7 dynamic whitelist white-labelling cordova

我们有一个应用程序,为客户端提供多个白标解决方案 - 这意味着它们在自己的域下托管.

我们有一个Cordova应用程序,我们希望用户可以使用此应用程序访问所有这些网站,我不希望每次签署新客户端时重新部署.

  • 有没有办法通过网址或其他东西加载白名单?这意味着我们可以通过我们的数据库动态添加域名.
  • 当您将所有网址列入白名单时,是否存在巨大的安全风险?

https://cordova.apache.org/docs/en/latest/guide/appdev/whitelist/

为了澄清,我希望有一个类似URL的东西,你可以指向它在启动时每次加载的白名单设置.

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/" />
Run Code Online (Sandbox Code Playgroud)

...此文件将在启动时自动加载.

创建一个基于JS的插件

如果不是当前的解决方案,是有可能做到这一点安全通过创建(基于JavaScript)科尔多瓦插件?就像我们尝试加载的URL在白名单之外时手动重定向一样?

这意味着我们将Cordova列入白名单并使用我们自己的插件来阻止我们自己的白名单之外的所有内容.

(我知道当我们的数据库被泄露时这不安全,但在这种情况下,我们一般会遇到更大的问题.我们的应用程序是为了好玩而不依赖于关键功能)

Ker*_*tts 1

没有机制可以动态更新应用程序构建后的白名单。这将在很大程度上破坏一开始提供白名单的安全性。

将所有内容列入白名单的安全风险非常高,尤其是在加载不属于您的网站时。将这些网站加载到您的应用程序的主框架中,使它们能够访问您的应用程序可以访问的同一 Cordova 桥 - 这意味着这些页面可以使用您的应用程序中安装的相同插件。(注意:在应用程序内浏览器中或外部打开这些链接不会带来相同的风险,因为这不提供对 Cordova 桥的访问。)

旁注:即使您使用自己拥有的网站,风险也很高:如果成功执行 MITM 攻击,或者您的后端被黑客攻击的恶意内容可能会提供给最终用户。

如果不了解更多关于您的服务如何运作的信息,就很难提供更多帮助,但我建议为每个客户构建一个单独的应用程序。您可以创建使(几乎)所有事情自动化的脚本,以便向您的客户端发布更新并不繁琐。