我希望通过任何 url 将 html 文件加载为 iframe,它由 Github 托管。
此解决方案不起作用:
<?php
header('X-Frame-Options: GOFORIT');
?>
而且我想我们不能应用这个(mod_headers),那么有没有办法做到这一点?
支持回答:
我们阻止 iframe 以防止针对我们用户的点击劫持攻击。我们通过为每个页面发送“X-Frame-Options:deny”标头来做到这一点。Clickjacking 是一种合法的攻击媒介,目前我们没有计划删除“X-Frame-Options:deny”标头或允许非 GitHub 拥有的属性例外。不幸的是,这些措施是必要的,但我们有责任采取一切实际措施来保护我们的用户。
正如jeum解释的那样,没有iframe的骰子,它就是行不通的。如果您可以使用元标记覆盖指令,它可能会起作用,但您不能:
请注意,此令牌必须作为 HTTP 标头发送,如果在 META HTTP-EQUIV 标记中找到该指令将被忽略。
因此,它不适用于 iframe。但它真的必须是 iframe 吗?因为加载脚本仍然可以工作,所以你可以这样做:
您网站上的脚本(我们称之为load_content.js
):
var node = document.createElement('div')
node.innerHTML = '{place your code encoded as a JS string here}'
document.appendChild(node)
然后像这样从其他网站使用它:
<script src="{URL to load_content.js}"></script>
当然,这对您使用它的网站有一些安全隐患,但它可能足以满足您的需求。
OTOH,您为什么不在其他地方托管该内容?一个小型虚拟服务器的成本并不高(除非你想要大量的 RAM 和硬盘空间)(我可能每月支付 6 欧元左右),即使你付不起任何钱,也有网站我认为,这可以让您免费托管一些 html 页面。