根据是不是通过 iframe 查看网站来阻止访问网站 [重复]

Posted

技术标签:

【中文标题】根据是不是通过 iframe 查看网站来阻止访问网站 [重复]【英文标题】:Prevent access to website depending on wheter or not it is viewed trough an iframe [duplicate]根据是否通过 iframe 查看网站来阻止访问网站 [重复] 【发布时间】:2018-08-05 17:55:48 【问题描述】:

我有一个只有一个页面的网站(网站 a),我想通过 iframe 在不同的网站(网站 b)上显示该页面。但是我想阻止访问网站a。

基本上我想做的是这样的:

if (load website trough iframe == true)
         show website;
    
else
         don't open website;
     

有人知道从哪里开始解决这个问题吗?

【问题讨论】:

这里是:developer.mozilla.org/en-US/docs/Web/HTTP/Headers/… 必填:We Done Been ... Framed! 【参考方案1】:

浏览器将不提供对window.top 方法的访问。所以可以使用下面的代码来检测网站是运行在iframe还是Browser中

function isInIframe () 
    try 
        return window.self !== window.top;
     catch (e) 
        return true;
    

现在你可以这样做了:

if (isInIframe())
    document.write("Show Website");

else
    document.write("Don't Show Website");

【讨论】:

【参考方案2】:

阻止访问是一个强词。这是检查您是否在框架中的方法。

if (window.frameElement) 
  // in frame

else 
  // not in frame... redirect to another page?

【讨论】:

以上是关于根据是不是通过 iframe 查看网站来阻止访问网站 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止我的网站加载到其他网站 iframe

X-Frame选项不是100%用于阻止iframe

如何打开放置在iframe html中直接访问阻止目录中的pdf文件

如何阻止网站在 iframe 中加载?

pfSense阻止对某个网站的访问

在父窗口中访问 iFrame 的 cookie