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

标签 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

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

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

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

最佳答案

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

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

您可以尝试多种不同的方法,其中大部分是可以规避的:

  1. 为您不介意放在 iframe 中的页面创建一个单独的空间,在其他任何地方,使用 SAMEORIGIN header

  2. 对于您不想嵌入 iframe 的所有页面,检查 referer 并在嵌入 iframe 时重定向到自定义页面:

    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http://your-website.com
    RewriteRule ^ /custom_page.html [L,R=302]
    
  3. 不要使用 iframe 并在所有位置设置 SAMEORIGIN header 。

关于javascript - 如果其他域使用 iframe 显示我的网站,如何重定向到错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12880165/

相关文章:

javascript - 如何解决这个 MongoDB/Node 异步问题?

javascript - 如何获取 jquery ajax 状态码

php - 如何将斜杠后面的所有内容重定向到之前的域?

javascript - 在 Chrome 上更改 iframe 内容的 CSS,该 iframe 的 src ="about:blank"

javascript - 如何将 Google Dart 与 Firebase 简单登录一起使用(函数内传递函数)

javascript - 错误 : *. default is not a constructor

apache - ForceType/htaccess 文件扩展名问题 - 无扩展名文件?

php - WordPress 页面查询字符串上的 URL 重写

HTML5 iframe 不会显示 url 源图像

javascript - 动态创建的用于下载文件的 iframe 会触发带有 Firebug 的 onload 但并非没有