是否有任何选项可以检测我的页面是否从点击劫持页面加载?
我的意思是,如果页面是点击劫持的来源(我已经设置了X-FRAME-OPTIONS头),问题是如果用户从点击劫持的页面浏览到我的页面。
我找到的第一个解决方案是控制HTTP-REFERER,但这是一项艰巨的工作,因为我无法控制所有的流量。
对不起,我的英语不好。
发布于 2015-10-28 17:57:10
除非你打算让外部网站能够发布到你的网站上,否则如果你有一个来自另一个服务器的POST请求,它很可能是点击劫持:
if($_SERVER['REQUEST_METHOD'] == 'POST' && !strstr($_SERVER['HTTP_REFERER'], 'mydomain.com') {
//probably clickjacking
}如果您的页面使用GET,而这些页面容易受到点击劫持的影响,您可以在每个页面的基础上添加对HTTP_REFERER的检查,或者将页面更改为使用POST (这通常最适合进行更新的内容)。
发布于 2015-10-29 02:58:11
您的一个选择是设置您的网站标题:“X帧选项”为"SAMEORIGIN“
这将防止您的网站被加载到iframe和框架中,除非原始页面在您的域中。请注意,这只适用于某些浏览器,例如,我认为这不适用于IE7及以下版本,我不认为它适用于chrome。这至少会减少你的攻击面。
Apache:
标头始终附加X帧选项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
https://stackoverflow.com/questions/33387353
复制相似问题