如果其他域使用iframe显示我的网站,如何重定向到错误页面

时间:2012-10-14 07:27:47

标签: javascript .htaccess iframe meta

最近我的网站内容被很多其他网站窃取。

他们所做的只是创建我网站的iframe并在其网域上显示特定数据以获得高流量。当我发现时,我尝试使用htaccessmeta标记阻止它。

我们滥用的网页是一个html页面,其中包含来自子目录的iframe。 他们不使用那个iframe,而是他们针对html页面的其他内容,但我的阻止技术在Firefox中不起作用,它也阻止了我的iframe。它在Google Chrome和Internet Explorer中运行良好。

我的.htaccess设置 - 适用于Firefox,但不适用于Google Chrome和Internet Explorer,也不会显示来自同一域的iframe:

Header set X-Frame-Options DENY
Header always append X-Frame-Options SAMEORIGIN

我的元设置 - 这适用于除Firefox以外的所有浏览器:

<meta http-equiv="X-Frame-Options" content="deny">

我暂时这样做是为了阻止我的内容在其他网站上使用。 我希望重定向到我的自定义页面,或者当用户在框架内单击时重定向。欢迎任何更好的想法。

2 个答案:

答案 0 :(得分:2)

iframe的内容协商完全由客户端(浏览器)处理。客户决定是否显示iframe的内容以及是否遵守 SAMEORIGIN 选项(某些浏览器可能不会)。

就htaccess而言,服务器不知道页面请求之间的区别,因为有人直接访问了页面,而且请求嵌入在iframe中的页面,所以你无能为力在htaccess文件中,以防止通过iframe加载页面。

你可以尝试许多不同的东西,其中大部分都可以被规避:

  1. 为您不介意在iframe中的网页创建单独的空间,在其他任何地方,使用 SAMEORIGIN 标题

  2. 对于您不希望嵌入iframe的所有网页,请检查引用并在嵌入iframe时重定向到自定义页面:

    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://your-website.com
    RewriteRule ^ /custom_page.html [L,R=302]
    
  3. 请勿使用iframe并在任何地方设置 SAMEORIGIN 标题。

答案 1 :(得分:1)

一种方法是通过JavaScript将用户重定向到您的网站,从中断

if (top.location != location) {
    top.location.href = document.location.href;
}