我正在努力为我们的网站实施点击劫持预防。我首先添加了标题 X-Frame-Options :sameorigin。有了这个,我们的网站无法加载到任何其他网站托管的任何 iframe 中,因此 Clickjacking 部分工作正常。
现在的问题是,我们使用 iframe 加载托管支付网关形式的页面很少,该支付网关使用 iframeCommunicator Url 选项进行跨域通信。添加 X-Frame-Options 标头后,托管表单未与支付网关通信。
我在控制台中遇到以下错误:拒绝在框架中显示“ http://localhost:44352/examplesite/payment/iFrameCommunicator#action=resizeWindow&width=1106&height=152 ”,因为它将“X-Frame-Options”设置为“sameorigin” '。
上面的错误来自我在 webconfig 中设置的标题,如下所示
<httpProtocol>
<customHeaders>
<add name="X-FRAME-OPTIONS" value="SAMEORIGIN" />
</customHeaders>
</httpProtocol>
我尝试过的其他设置:
<add name="X-Content-Security-Policy" value="frame-ancestors 'self' *.example.net*" />
<add name="Content-Security-Policy" value="frame-ancestors 'self' *.example.net*" />
其中.example.net是用于获取托管表单的支付网关 URL。