【发布时间】:2018-05-31 04:20:03
【问题描述】:
我想托管一个只能通过我自己域中的 iframe 提供的网页。
Codepen 就是一个典型的例子。他们在 iframe 中将“笔”的内容沙箱化,但如果您尝试从浏览器加载 url,它会以空页面响应。
我知道这个问题可能有多个答案,但我希望有人能指出我正确的方向。
我会检查引荐来源服务器端吗?还有其他选择吗?
【问题讨论】:
-
一个解决方案可能是验证 URL。
我想托管一个只能通过我自己域中的 iframe 提供的网页。
Codepen 就是一个典型的例子。他们在 iframe 中将“笔”的内容沙箱化,但如果您尝试从浏览器加载 url,它会以空页面响应。
我知道这个问题可能有多个答案,但我希望有人能指出我正确的方向。
我会检查引荐来源服务器端吗?还有其他选择吗?
【问题讨论】:
Referer 是服务器端的良好开端。
您也可以尝试使用 CORS 标头: Only allow iframe to load content
或使用客户端 javascript 代码进行验证: How to identify if a webpage is being loaded inside an iframe or directly into the browser window?
同时检查referrerpolicy的信息
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-referrerpolicy
【讨论】: