基于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难度不大

相关文章
|
关系型数据库 MySQL 数据库
Docker快速上手:使用Docker部署Drupal并实现公网访问
Docker快速上手:使用Docker部署Drupal并实现公网访问
13.C语言:用printf函数输出数据
13.C语言:用printf函数输出数据
286 0
|
存储 域名解析 供应链
阿里云 OSS对象存储攻防
本文分为两个部分 第一部分介绍OSS对象存储攻防的方式 第二部分为真实漏洞案例
3291 0
阿里云 OSS对象存储攻防
|
定位技术
GEE(CCDC-3)——根据CCDC segment分割后的影像进行地类变化统计和绘制土地覆被变化地图
GEE(CCDC-3)——根据CCDC segment分割后的影像进行地类变化统计和绘制土地覆被变化地图
478 0
|
算法 Go 计算机视觉
【YOLO系列】YOLOv8算法(尖端SOTA模型)
Ultralytics YOLOv8 是由 Ultralytics开发的一个前沿 SOTA 模型。它在以前 YOLO 版本的成功基础上,引入了新的功能和改进,进一步提升了性能和灵活性。YOLOv8 基于快速、准确和易于使用的理念设计,使其成为广泛的物体检测、图像分割和图像分类任务的绝佳选择。
3365 0
【YOLO系列】YOLOv8算法(尖端SOTA模型)
|
JavaScript 前端开发 Java
Unicode转义(\uXXXX)的编码和解码
  在涉及Web前端开发时, 有时会遇到\uXXXX格式表示的字符, 其中XXXX是16进制数字的字符串表示形式, 在js中这个叫Unicode转义字符, 和\n \r同属于转义字符. 在其他语言中也有类似的, 可能还有其它变形的格式.
2907 0
|
Rust 安全 前端开发
30天拿下Rust之图形编程
30天拿下Rust之图形编程
238 0
|
SQL 监控 Oracle
关系型数据库Oracle并行执行
【7月更文挑战第12天】
342 14
|
移动开发 小程序 前端开发
微信小程序自定义导航栏
微信小程序自定义导航栏
450 0
微信小程序自定义导航栏
|
JSON JavaScript 前端开发
【JavaScript技术专栏】JavaScript的跨域通信方法
【4月更文挑战第30天】本文探讨了JavaScript中的跨域通信方法,包括:同源策略和跨域通信的概念,以及JSONP、CORS、WebSockets、`window.postMessage()`、代理服务器和WebAssembly的使用。这些技术各有优劣,适用于不同的场景,是Web开发者解决跨域问题的关键工具。随着Web技术的演进,跨域通信的解决方案也将不断更新。
276 0