使用自定义协议的CSP(内容安全策略)

9

我在开发一个基金经纪网站时遇到了一些困难。

作为我们安全策略的一部分,我们的服务器上实施了内容安全策略(CSP),但现在,我们正在实现与北欧银行提供的桌面软件(BankID)进行通信。

随之而来的问题是:要打开BankID桌面软件,应该点击一个自定义协议的链接,看起来像这样:

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

我相信你能理解,我遇到了严重的问题,无法允许这个链接通过我们的CSP策略。我的搜索没有结果,我已经没有更多的想法。

我尝试着在协议下允许通配符域名:

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

如果我关闭CSP,它就能完美运行,所以这肯定是问题所在。
有没有人对此有经验?任何帮助都将不胜感激。
在进一步搜索了几个小时后,我发现在Mozilla Wiki上找到了以下内容:
我们需要一个应用交付机制,可以确保应用程序的完整性和真实性,并允许定义良好的应用程序和特权范围执行,以便在运行时维护完整性。

并且进一步提到:

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

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

1个回答

15

看起来你离解决方案很近了,只需要稍微修改一下语法就行了。只要去掉斜杠,它应该就能正常工作。

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

总结如下:

  • 引号(“’):不需要
  • 斜杠(//):不需要
  • 冒号(:):需要

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接