zoukankan      html  css  js  c++  java
  • 基于iframe的CFS(Cross Frame Script)和Clickjacking(点击劫持)攻击

    攻击原理:
        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难度不大
  • 相关阅读:
    前端性能优化方法
    软件测试十大原则
    CSRF攻击【转载】
    XSS攻击(出现的原因、预防措施......)
    python 连接MySQL数据库
    《快消品营销人的第一本书》
    python 格式化输出日志记录
    python 安装cv2
    测试用例设计的策略
    【转】APP功能测试要领
  • 原文地址:https://www.cnblogs.com/firstdream/p/8308727.html
Copyright © 2011-2022 走看看