如何修复拒绝在框架中显示,因为它将'X-Frame-Options'设置为"同源"



我在角度中使用 i-frame 时遇到错误。它拒绝在帧中显示,因为它将"X-帧选项"设置为"同源">

拒绝在帧中显示"https://docs.google.com/gview?url=https://subtreebucket.s3.amazonaws.com/docsFile_1559124133664_dummy.pdf",因为它将"X-帧选项"设置为"同源"。

您不能否决这一点:正如您在对所显示 URL 的GET请求的响应中看到的那样,有一个响应标头x-frame-options: SAMEORIGIN

这意味着源服务器不授权您在iframe中显示此内容。

您无法规避这一点,这是一种安全保护:否则会使会话劫持变得太容易。

唯一的方法是使用相同的资源和一个允许您查看的 URL(例如直接 PDF URL,此处https://subtreebucket.s3.amazonaws.com/docsFile_1559124133664_dummy.pdf,或者向 URL 添加embedded=true可能会起作用,这是特定于 google 文档的(。

请使用带有安全管道的santizer,然后包含以下链接

<iframe class="doc" src="https://docs.google.com/gview?url=https://subtreebucket.s3.amazonaws.com/docsFile_1559124133664_dummy.pdf&embedded=true"></iframe>

确保在 iframe 中添加源代码时使用 embedded=true。它肯定会起作用

从 src url 中删除https://docs.google.com/gview?url=部分怎么样?

<iframe 
  src="https://subtreebucket.s3.amazonaws.com/docsFile_1559124133664_dummy.pdf"
  frameborder="0">
</iframe>

它有效。


这是您的参考的工作示例堆栈闪电战

将以下内容添加到 web.config customHeaders 部分:

<customHeaders>
  <remove name="X-Powered-By" />
  <remove name="X-Content-Type-Options" />
  <add name="X-Frame-Options" value="ALLOW-FROM http://sharepointsitecollectionurl " />
  <add name="Content-Security-Policy" value="frame-ancestors sharepointwebapplicationurl" />
  <add name="X-Content-Type-Options" value="nosniff" />
  <add name="X-XSS-Protection" value="1; mode=block" />
  <add name="X-UA-Compatible" value="IE=Edge" />
</customHeaders>

因为您应该将内容嵌入到您的页面/网站上,而不仅仅是链接到它。

这是区别:

https://www.youtube.com/watch?v=${videoId} - 这种链接是在浏览器上观看YouTube视频。这与其他链接相同。

https://www.youtube.com/embed/${videoId} - 这种链接是将YouTube视频放在您的页面/网站上。这称为嵌入内容。

嵌入内容的目的是让读者留在您的网站上,为读者提供更好的体验,理想情况下,获得更多忠实的读者。与其将您的网站访问者发送到其他人的网站,不如将他们保留在您的内容所在位置并让他们参与其中,以便他们与您在一起的时间更长,并且更频繁地返回。

您可以使用 target="_blank" 属性。

相关内容

最新更新