检测我的页面是否是点击劫持目的地

时间:2015-10-28 09:31:06

标签: php iframe clickjacking

是否有任何选项可以检测我的页面是否是从点击劫持页面加载的?

我的意思是,如果页面是点击劫持的起源(我已经设置了X-FRAME-OPTIONS标题)并不重要,那就是用户正在浏览浏览页面的点击劫持页面。

我找到的第一个解决方案是控制HTTP-REFERER,但这是一项艰苦的工作,因为我无法控制所有流量。

抱歉我的英文。

2 个答案:

答案 0 :(得分:0)

除非您打算让外部网站能够POST到您的网站,否则如果您有来自其他服务器的POST请求,则可能是点击顶部:

if($_SERVER['REQUEST_METHOD'] == 'POST' && !strstr($_SERVER['HTTP_REFERER'], 'mydomain.com') {
      //probably clickjacking
}

如果您的页面使用易受点击劫持的GET,您可以在每页的基础上添加对HTTP_REFERER的检查,或者更改页面以使用POST(这通常最适合进行更新的内容) )。

答案 1 :(得分:0)

您可以选择设置网站标题:" X-Frames-Options"到" SAMEORIGIN"

除非原始网页位于您的域中,否则这应该会阻止您的网站加载到iframe和框架中。 请注意,这仅适用于某些浏览器,例如我不认为这适用于IE7及以下版本,我认为它不适用于Chrome。这至少可以减少你的攻击面。

的Apache:

  

标题始终附加X-Frame-Options SAMEORIGIN

MDN - The X-Frame-Options response header

编辑:现在我明白了...

也许您可以使用与此类似的代码:



if (window.top !== window.self) {
        // do something here
    }




这是检测页面是否加载到iframe的一种方法。您可以在此处设置cookie,在此处调用WebService,或使用window.location.href进行导航。

以下是"框架破坏"的示例点击顶升的防御: Clickjacking Defense

-KB