7

我有点紧张,正在开发一个基金经纪人网站。

作为我们安全策略的一部分,CSP在我们的服务器上实施,但现在,我们正在实施与斯堪的纳维亚银行 ( BankID ) 提供的桌面软件的通信。

这样就出现了一个问题:要打开 BankID 桌面软件,应该点击一个带有自定义协议的链接,如下所示:

bankid://?orderref=[GUID]&autostarttoken=[GUID]

我相信您明白,我在通过我们的 CSP 政策允许此链接时遇到严重问题。我的搜索没有产生任何结果,而且我的想法已经用完了。

我曾尝试在协议下允许通配符域,因此:

Content-Security-Policy: default-src 'self' bankid://*;

如果我关闭 CSP,它会完美运行,所以这绝对是问题所在。

有人对此有经验吗?任何帮助是极大的赞赏。


编辑

经过几个小时的搜索,我在Mozilla Wiki上找到了以下内容:

我们需要一种应用程序交付机制来保证应用程序的完整性和真实性,并允许明确定义的应用程序和权限范围强制执行,以便在运行时保持完整性。

并进一步:

特权和认证的应用程序将通过一个独特的方案 (app://) 访问。域将对应于应用程序 ID。

我不确定这是否适用,但如果我没看错,这意味着 Mozilla 正在考虑如何解决这个问题。

4

1 回答 1

11

您似乎非常接近解决方案,您只需稍微更改语法即可。通过删除斜线,它应该可以正常工作。

Content-Security-Policy: default-src 'self' bankid:;

总结一下:

  • 引号 ("'):否
  • 斜线 (//):否
  • 冒号 (:):是
于 2017-01-30T15:29:47.277 回答