添加 Xframeoptions 后不会发生跨域通信:Sameorigin
Cross domain communication is not happening after adding Xframeoptions : Sameorigin
我正在努力为我们的网站实施预防点击劫持。我首先添加 header X-Frame-Options : sameorigin.有了这个我们的网站无法加载到任何其他网站托管的任何 iframe 中,因此点击劫持部分工作正常。
现在的问题是,我们有几个页面使用 iframe 加载托管形式的支付网关,这些网关使用 iframeCommunicator Url 选项进行跨域通信。添加 X-Frame-Options header 后,托管表单未与支付网关通信。
我在控制台中遇到以下错误:
拒绝在框架中显示“http://localhost:44352/examplesite/payment/iFrameCommunicator#action=resizeWindow&width=1106&height=152”,因为它将 'X-Frame-Options' 设置为 'sameorigin'。
上面的错误来自 header 我在 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。
正在考虑...
您想要拒绝您的网站被其他人使用 iframe,但允许 iframe 提供来自你自己的网站:
<add name="Content-Security-Policy" value="frame-ancestors 'self';" />
与旧的X-Frame-Options具有相同的效果 header:
<add name="X-Frame-Options" value="sameorigin" />
并且您想要允许包含支付网关页面的 iframe:
<add name="Content-Security-Policy" value="frame-src *.example.net;" />
因此您需要同时设置 HTTP headers。请注意,HTTP header 仅添加到您的页面,而不添加到支付提供商页面,它们由另一台服务器提供。
然而...
这无法解释为什么您无法通过将 X-FRAME-OPTIONS header 设置为 allow sameorigin 来在 iframe 中提供来自支付网关的内容,正如您之前所述。
我正在努力为我们的网站实施预防点击劫持。我首先添加 header X-Frame-Options : sameorigin.有了这个我们的网站无法加载到任何其他网站托管的任何 iframe 中,因此点击劫持部分工作正常。
现在的问题是,我们有几个页面使用 iframe 加载托管形式的支付网关,这些网关使用 iframeCommunicator Url 选项进行跨域通信。添加 X-Frame-Options header 后,托管表单未与支付网关通信。
我在控制台中遇到以下错误: 拒绝在框架中显示“http://localhost:44352/examplesite/payment/iFrameCommunicator#action=resizeWindow&width=1106&height=152”,因为它将 'X-Frame-Options' 设置为 'sameorigin'。
上面的错误来自 header 我在 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。
正在考虑...
您想要拒绝您的网站被其他人使用 iframe,但允许 iframe 提供来自你自己的网站:
<add name="Content-Security-Policy" value="frame-ancestors 'self';" />
与旧的X-Frame-Options具有相同的效果 header:
<add name="X-Frame-Options" value="sameorigin" />
并且您想要允许包含支付网关页面的 iframe:
<add name="Content-Security-Policy" value="frame-src *.example.net;" />
因此您需要同时设置 HTTP headers。请注意,HTTP header 仅添加到您的页面,而不添加到支付提供商页面,它们由另一台服务器提供。
然而...
这无法解释为什么您无法通过将 X-FRAME-OPTIONS header 设置为 allow sameorigin 来在 iframe 中提供来自支付网关的内容,正如您之前所述。