使用Spring Boot的过滤器拦截参数,并使用JSOUP在参数中过滤XSS
Spring Boot的过滤器截取前端的参数(是否容易看?)。
简单地说,有两个功能:参数拦截,脚本过滤。
如果要过滤XS,则必须首先拦截前端参数。
首先写一个过滤器:
该过滤器可以拦截请求。但是,如果要修改参数,则需要重新定义httpservlequestwrapper。仅使用自定义HTTPServleQuestWrapper才能修改参数。
以下定义XSSHTTPSERVLETREQUESTWRAPPER:
这样,可以修改参数,但是当前情况无法处理或请求机体注释。
使用请求机体注释时,您会发现这些重写方法尚未消失,表明我们没有重写全面的方法。
我找到了一些信息,发现解释请求body的参数的方法
让我们重写此方法:
然后启动此过滤器
基本上,这些参数用于拦截,您可以自己定义参数的修改规则。您还可以使用JSOUP过滤XSS
使用JSOUP在参数中过滤标签以添加依赖关系
好吧,即使结束了,仍然存在一个小问题。
使用JSOUP可以过滤所有HTML标签,但是还有一个问题,例如
参数是:
由于找不到标签的末端,因此所有后续参数将被过滤。
这将导致控制器获得参数异常。
但是,即使将其返回到前端,也不能解析此HTML标签,因为标签是错误的。如果您确实需要过滤此参数。
您可以尝试直接过滤特殊字符。