我试图在另一个站点尝试iframe我的网站时显示错误消息。我使用的.htaccess:在框中显示消息.htaccess
Header set X-Frame-Options DENY
然而,这仅仅是创建一个空白页,而iframe中。是否可以显示错误消息,而不是只是一个空白的屏幕?
更新
我不寻找任何JavaScript解决方案
我试图在另一个站点尝试iframe我的网站时显示错误消息。我使用的.htaccess:在框中显示消息.htaccess
Header set X-Frame-Options DENY
然而,这仅仅是创建一个空白页,而iframe中。是否可以显示错误消息,而不是只是一个空白的屏幕?
更新
我不寻找任何JavaScript解决方案
您可以在消息中显示自定义错误页面。
ErrorDocument 403 /access.html
了解更多详情:1。 http://www.hostingmanual.net/fun-with-htaccess-tutorial-examples/
HTML
<!DOCTYPE html>
<html lang=en>
<head>
<title>Blocking iFrame with JS</title>
</head>
<body>
<p>page content</p>
<script src='iframe/blocker.js'></script>
</body>
</html>
JS
if (window.top !== window.self) window.top.location.replace(window.self.location.href);
注:这JS代码重定向到父页面(iframe的位置坐) - 当然,你也可以使用covener的解决方案,他的解决你的问题很有意思:)
为什么它是坏的,如果你的页面是在源页面上“的iframe”要求
更多信息:启用JavaScript
缺点:我不会推荐,因为攻击者拥有所有你做同样的工具,他们可以使用沙箱,以防止你运行的JavaScript或重定向窗口
来源: https://www.tinfoilsecurity.com/blog/protect-your-website-from-embedded-content-iframe-security
您可以使用mod_rewrite或<if>
来检查引用链接(它是iframe中的封闭页面)并将站点的整个部分重定向到静态文件。
这里有许多可能的首发食谱对证接受引荐域的列表中的一个:!
RewriteEngine叙述ON 的RewriteCond%{REQUEST_URI} iframe_err.html 的RewriteCond%{HTTP_REFERER} ^($ | HTTP [ s]://(www。)?mydomain.com) RewriteRule。* /iframe_err.html
iframes由浏览器处理。
客户端决定是否显示iframe的内容以及是否兑现SAMEORIGIN选项。
即使使用.htaccess,服务器也不知道整个页面的页面请求之间的差异,例如某人直接访问页面或从iframe访问页面。
你可以做的是检查HTTP_REFERER。检查这个样本我还没有测试过,但想法是阻止页面从您自己的网站以外的任何地方访问。
RewriteEngine On
RewriteCond %{QUERY_STRING} !^id=[^&]+ [NC]
RewriteCond %{HTTP_REFERER} !^http://your-website.com
# then redirect to a different page
RewriteRule !^start start [L,NC,R=302]
但正如我前面提到的HTTP_REFERER它不是100%可靠的解决方案,可以被欺骗。但是,互联网上的任何事情都不是100%可靠的。
如果你不找JavaScript的解决方案你或许应该删除javascript标签。 –
@ SeanWessell-好点,我忘了我有! – Zackh105
你应该看看SO使用的大片。尝试从SO构建一个页面,看看会发生什么 – 2016-12-23 12:55:26