当前位置: 首页 > 网络应用技术

Springboot实施的XSS截距,这是一种简单的方式

时间:2023-03-05 18:26:53 网络应用技术

  使用Spring Boot的过滤器拦截参数,并使用JSOUP在参数中过滤XSS

  Spring Boot的过滤器截取前端的参数(是否容易看?)。

  简单地说,有两个功能:参数拦截,脚本过滤。

  如果要过滤XS,则必须首先拦截前端参数。

  首先写一个过滤器:

  该过滤器可以拦截请求。但是,如果要修改参数,则需要重新定义httpservlequestwrapper。仅使用自定义HTTPServleQuestWrapper才能修改参数。

  以下定义XSSHTTPSERVLETREQUESTWRAPPER:

  这样,可以修改参数,但是当前情况无法处理或请求机体注释。

  使用请求机体注释时,您会发现这些重写方法尚未消失,表明我们没有重写全面的方法。

  我找到了一些信息,发现解释请求body的参数的方法

  让我们重写此方法:

  然后启动此过滤器

  基本上,这些参数用于拦截,您可以自己定义参数的修改规则。您还可以使用JSOUP过滤XSS

  使用JSOUP在参数中过滤标签以添加依赖关系

  好吧,即使结束了,仍然存在一个小问题。

  使用JSOUP可以过滤所有HTML标签,但是还有一个问题,例如

  参数是:

  由于找不到标签的末端,因此所有后续参数将被过滤。

  这将导致控制器获得参数异常。

  但是,即使将其返回到前端,也不能解析此HTML标签,因为标签是错误的。如果您确实需要过滤此参数。

  您可以尝试直接过滤特殊字符。