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

Hel*_*röm 5 protocols custom-protocol content-security-policy bankid

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

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

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

bankid://?orderref=[GUID]&autostarttoken=[GUID]
Run Code Online (Sandbox Code Playgroud)

我确信您理解,我遇到严重问题,允许通过我们的CSP政策进行此链接.我的搜索没有产生任何结果,我的想法已经用完了.

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

Content-Security-Policy: default-src 'self' bankid://*;
Run Code Online (Sandbox Code Playgroud)

如果我关闭CSP,它的效果非常好,所以这绝对是个问题.

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


编辑

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

我们需要一种应用程序交付机制,它可以保证应用程序的完整性和真实性,还可以实现定义明确的应用程序和权限范围,从而可以在运行时维护完整性.

并进一步:

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

我不确定这是否适用,但如果我认为这是正确的,那就意味着Mozilla正在考虑如何解决这个问题.

Jus*_*ijn 7

看起来你非常接近解决方案,你只需稍微改变一下语法.通过删除斜杠它应该工作得很好.

Content-Security-Policy: default-src 'self' bankid:;
Run Code Online (Sandbox Code Playgroud)

总结一下:

  • 行情("'):没有
  • 斜杠(//):没有
  • 冒号(:):是的