springboot中处理xss攻击的方法

发布时间 2023-03-28 00:39:03作者: moyu1011

1. xss如何产生的

a) XSS跨站脚本攻击原理及代码攻防演示

b) 这一次,彻底理解XSS攻击

2. filter过滤非法入参

SpringBoot去除参数前后空格和XSS过滤

3. 全局反序列化入参

a)解决方法

SpringBoot中可以使用全局的反序列化器,对请求中Json格式的参数执行反序列化处理。后端post请求一般使用@RequestBody接收application/json 格式的参数,然后我们可以转义json参数里的特殊字符。用@RequestParam@PathVariable等非json格式参数不会被反序列化器执行。

b)实现

@JsonComponent
public class GlobalJsonDeserializer extends JsonDeserializer<String> {

    @Override
    public String deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException {
        // 自定义转义规则 
        return jsonParser.getValueAsString()
                .replace("<", "&lt;")
                .replace(">", "&gt;");
    }
}