我正在尝试在其他网站尝试iframe我的网站时显示错误消息。我正在使用.htaccess:
Header set X-Frame-Options DENY
然而,这只是创建一个空白页面,没有iframe。是否可以显示错误消息,而不仅仅是空白屏幕?
更新
我 不 正在寻找任何JavaScript解决方案
答案 0 :(得分:2)
您可以在邮件中显示自定义错误页面。
ErrorDocument 403 /access.html
更多详情:1。 http://www.hostingmanual.net/fun-with-htaccess-tutorial-examples/
答案 1 :(得分:1)
iframe由浏览器处理。
客户决定是否显示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%可靠。
答案 2 :(得分:0)
<强> 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的解决方案,他对你的问题的解决方案是非常有趣:)
如果您的网页在源页面上“iframed”,那么有关原因的详细信息
要求: 启用JavaScript
下行: 我不建议这样做,因为攻击者拥有您所做的所有相同工具,他们可以使用沙盒来阻止您运行JavaScript或重定向窗口
来源:https://www.tinfoilsecurity.com/blog/protect-your-website-from-embedded-content-iframe-security
答案 3 :(得分:0)
您可以使用mod_rewrite或<if>
检查引荐来源(如果是iframe,则为封闭页面),并将您网站的整个部分重定向到静态文件。
以下是针对可接受的引用域列表进行检查的许多可能的初始配方之一:
RewriteEngine ON RewriteCond%{REQUEST_URI}!iframe_err.html RewriteCond%{HTTP_REFERER}!^($ | http [s]://(www。)?mydomain.com) RewriteRule。* /iframe_err.html