Helius
2021-06-16 5728be2af515b2200e782aa201ca5d4d67d9ea47
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package com.ibeetl.admin.core.util.beetl;
 
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.beetl.core.Format;
 
public class XXSDefenderFormat implements Format {
 
    @Override
    public Object format(Object data, String pattern) {
        if(data==null){
            return data;
        }
        
        if(data instanceof String){
            String js = (String)data;
            String str = StringEscapeUtils.escapeHtml4(js);
            if(StringUtils.isNotEmpty(pattern)){
                int len = Integer.parseInt(pattern);
                if(str.length()>len){
                    str = str.substring(0, len); 
                }
                
            }
            return str;
        }else{
            return data;
        }
        
    }
    
    public static void main(String[] args){
        String js =  "中文<script>hi</script><h5></h5>";
        System.out.println(js);
        js = StringEscapeUtils.escapeHtml4(js);
        System.out.println(js);
    }
 
}