提问人:David Spector 提问时间:7/9/2023 最后编辑:starballDavid Spector 更新时间:7/15/2023 访问量:35
是否可以访问 <iframe> 中显示的远程站点的源 HTML/CSS/JS?
Can the source HTML/CSS/JS of a remote site shown in an <iframe> be accessed?
问:
很明显,为了给服务器端 Web 编程提供良好的安全性,在设计 Web 基础结构时已经花了很多心思。然而,除了使用商业安全机制通过我们的浏览器流式传输商业视频内容外,似乎没有注意到为浏览器显示的材料提供客户端安全的问题。
我查看了优秀的 MDN Web Docs (https://developer.mozilla.org/en-US/docs),但找不到任何提供或不提供客户端安全性的保证。是吗?<iframe>
答:
-1赞
starball
7/15/2023
#1
如果您担心安全性,请注意,网站可以响应请求,并指定不应通过请求用户代理将其嵌入 iframe 中。请参阅 X-Frame-Options
HTTP 标头和 frame-ancestors
内容安全策略。
如果您对保护嵌入器(而不是嵌入器)感兴趣,请参阅 <iframe>
s 的 allow
属性。
您关心的主要安全机制是同源策略,它基本上是来自不同来源的资源不应相互访问。如果你想阅读更多关于它的信息,你可能对这个主题的MDN页面和维基百科页面感兴趣。
来自不同来源的资源可以通过多种方式进行合作(基本上双方都同意进行通信),例如 window.postMessage
。如果 iframe 页面与父框架来自同一来源,那么是的,父框架可以“进入”子框架的 DOM。例如,从 iFrame 中获取元素。
操作用户代理(例如浏览器)的用户仍然可以使用用户代理提供的工具来检查站点的资源,但这并不是一个安全问题 - 除非用户非常有意地成为信息从一个来源的资源到达另一个来源的资源的侧通道。例如,从浏览器开发工具中复制和粘贴内容。
评论