基于iframe的CFS(Cross Frame Script)和Clickjacking(点击劫持)攻击

简介: 攻击原理:    CFS攻击(Cross Frame Script(跨框架脚本)攻击)是利用浏览器允许框架(frame)跨站包含其它页面的漏洞,在主框架的代码中加入scirpt,监视、盗取用户输入。
攻击原理:
    CFS攻击(Cross Frame Script(跨框架脚本)攻击)是利用浏览器允许框架(frame)跨站包含其它页面的漏洞,在主框架的代码
中加入scirpt,监视、盗取用户输入。
    Clickjacking(点击劫持) 则是是一种视觉欺骗手段,在web端就是iframe嵌套一个透明不可见的页面,让用户在不知情的情况下,
点击攻击者想要欺骗用户点击的位置。
    CFS 和 Clickjacking其实都是基于网页iframe产生的攻击。当没有预防的时候,攻击者可以利用iframe的方式包含你的网页,
采用欺骗的方式,引导用户过来点击,利用监听盗取用户输入信息或者是利用样式控制或者骗取用户点击某个特定的区域,而达到
获取劫持的目的。

防止被 FRAME 加载你的网站页面

1. meta 标签:很多时候没有效果,无视

<meta http-equiv="Windows-Target" contect="_top">

 

2. js 判断顶层窗口跳转,可轻易破解,意义不大

function locationTop(){
    if (top.location != self.location) {
        top.location = self.location;
        return false;       
    }
    return true;
}
locationTop();

破解:

// 顶层窗口中放入代码
var location = document.location;
// 或者 var location = "";

 【像淘宝前端页面用的js:

if (top.location != self.location){
        top.location = self.location;
    }


3. header 控制,绝大部分浏览器支持


网站Sitemap的一些规则 

使用 X-Frame-Options 有三个可选的值:

DENY:浏览器拒绝当前页面加载任何Frame页面

SAMEORIGIN:frame页面的地址只能为同源域名下的页面

ALLOW-FROM:允许frame加载的页面地址

PHP代码:

header('X-Frame-Options:Deny');

Nginx配置:

add_header X-Frame-Options SAMEORIGIN

Apache配置:

Header always append X-Frame-Options SAMEORIGIN

具体参见:https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options?redirectlocale=en-US&redirectslug=The_X-FRAME-OPTIONS_response_header


注明:
如果是针对 安全扫描 appscan 或者CFCA认证 用的webinspect 这些工具的话扫出来的 Cross_Frame SCRIPT之类的high级别的安全问题,用第三条解决是可以过扫描的。如果不是过工具扫描,上述三中方案都是可行的。

在java中加入header deny方法如下(spring mvc,其他框架大同小异)

  @RequestMapping("/login")
    public String login(HttpServletRequest request,HttpServletResponse response) {
        HttpSession session = request.getSession();
        session.invalidate();
        response.addHeader("x-frame-options","DENY");
        return "login";
    }

之所以扫描工具不认前端js跳出frame也是有道理的,毕竟破前端js难度不大

相关文章
layui嵌套弹出模态框的Blocked a frame with origin null from的解决方案
layui嵌套弹出模态框的Blocked a frame with origin null from的解决方案
179 0
|
3月前
|
Web App开发 安全 前端开发
X-Frame-Options响应头防点击劫持
X-Frame-Options响应头防点击劫持
80 6
|
2月前
|
存储 JavaScript 前端开发
Xss跨站脚本攻击(Cross Site Script)
Xss跨站脚本攻击(Cross Site Script)
|
6月前
|
安全
WEB安全~X-Frame-Options
`X-Frame-Options` HTTP响应头用于控制网页是否能在框架中被嵌套,防范点击劫持攻击,保护用户安全。常见取值有`DENY`(禁止嵌套)和`SAMEORIGIN`(同源嵌套)。通过设置此头部,网站能提升安全性,防止被恶意嵌入其他站点。注意合理配置并与其他安全头部结合使用。例如,配置为`ALLOW_FROM baidu.com`允许来自百度的嵌套,`SAMEORIGIN`则仅允许同域名嵌套,而`DENY`则拒绝所有。不配置则无保护。
204 2
|
7月前
|
安全 前端开发 JavaScript
防御点击劫持:X-Frame-Options头的重要性与实践
防御点击劫持:X-Frame-Options头的重要性与实践
869 0
|
Web App开发 移动开发 安全
如何阻止 iframe 里引用的网页自动跳转
如何阻止 iframe 里引用的网页自动跳转
177 0
|
Apache
使用X-Frame-Options头来防止网页被嵌入到其他网页中,具体如何使用?
使用X-Frame-Options头来防止网页被嵌入到其他网页中,具体如何使用?
1038 0
|
JavaScript 搜索推荐 应用服务中间件
怎么防止网站被别人使用iframe框架恶意调用
发生歹意网站的危害关于新站来说,是比较大的。那我们应该怎样防止别人歹意镜像我们的网站呢?首要得了解一下镜像网站的原理,镜像网站大约需求以下的几个条件:你的网站运用了独立IP.当然,独立ip对一个网站来说,是好的,可以和其他网站差异开来,成为镜像网站的条件之一,只是独立ip的一个小缺陷。
144 0
怎么防止网站被别人使用iframe框架恶意调用
|
存储 安全 数据安全/隐私保护
access-control漏洞系列-绕过阻止预览链接
背景 复现步骤 access-control漏洞系列-绕过阻止预览链接
319 0