zoukankan      html  css  js  c++  java
  • Jeecms 防xss处理原理

    Web.xml配置过滤器,并指的要过滤和替换的字符:

     

    过滤器的filter方法,对传入的HttpServletRequest对象进行了修改

     

    具体过滤在XssHttpServletRequestWrapper类中实现,看看XssHttpServletRequestWrapper类都做了什么:

    在构造方法中获取要过滤和替换的字符并分割成字符串数组,分隔符模式是@符号:

     

    对原生的getQueryStringgetParametergetParameterValues、getHeader方法全部进行了重载,并使用xssEncode对返回值进行处理,

     

     

     接下来看xssEncode做了什么,也是最关键的地方:

     

    可以看出他只是对字符进行了替换:把半角字符'@"@@#@:@%@>替换为全角字符‘@“@\@#@:@%@>(这里@符为分隔符)。

  • 相关阅读:
    mysql事务
    数据类型
    win10 开启全局代理
    高并发的一些思考
    多线程也不一定比单线程快
    单线程的JavaScript
    Vue2 响应式原理
    检查Object是否存在某个属性
    堆和栈
    LeetCode
  • 原文地址:https://www.cnblogs.com/fsqsec/p/5260971.html
Copyright © 2011-2022 走看看