拒绝显示,请将X-Frame-Options设置为SAMEORIGIN

Refused to display, set X-Frame-Options to SAMEORIGIN

本文关键字:设置 SAMEORIGIN X-Frame-Options 请将 显示 拒绝      更新时间:2023-09-26

我在ASP.Net 2008中有一个非常旧的网站,由一个我没有联系的外部团队创建。突然之间,一个页面在Chrome和FireFox中似乎无法正常渲染,但在其他浏览器中可以正常工作。页面设置有iFrame。

在Inspect Element(Chrome)下查找无法呈现的页面,我看到错误

Refused to display 'http://www.example.com/somepage.html' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN, SAMEORIGIN'.

所以读了几篇文章,我可能不完全理解这一点,但在我看来,错误是,请求的域不允许自己显示在一个框架内。

上面的URL不是我熟悉的URL(即它的第三方,我对它没有任何控制权)。有没有办法解决这个问题,或者这纯粹是域名所有者必须允许的?如果是的话,为什么它能在其他浏览器中工作?

有没有办法解决这个

不是在你这边。

还是这纯粹是域名所有者必须允许的?

这个

如果是的话,为什么它能在其他浏览器中工作?

这里有点推测,但SAMEORIGIN, SAMEORIGIN不是一个有效值。看起来Chrome正在尝试错误恢复,并将其视为SAMEORIGIN

Quentin的回答很好地总结了它。

此外,如果是你无法控制的外部网站,他们可能有充分的理由禁止取景。(比如防止点击劫持。)

它们还可能包括具有相同效果的CCD_ 3报头。

(目前,Chromium(和Chrome)中的一个错误导致X-Frame-Options优先于Content-Security-Policy,而它不应该优先。)

如果他们的网站是通过http(而不是https)提供服务的,并且你可以控制一个公共网络设备,所有用户到该网站的网络流量都必须通过该设备。我的意思是,在这个设备上,如果它允许你这样做,你可以从这个网站的响应中过滤掉"不需要的"标题。

当然,这是一个有争议的破解。根据"受害者"网站的使用条款,这样做甚至可能是一个法律问题。