java.lang.Object
cn.dinodev.spring.commons.validation.validator.XssValidator
All Implemented Interfaces:
jakarta.validation.ConstraintValidator<Xss,String>

public class XssValidator extends Object implements jakarta.validation.ConstraintValidator<Xss,String>
XSS(跨站脚本攻击)注入检测校验器

该校验器用于检测输入字符串中是否包含可能导致XSS攻击的字符, 主要检测HTML标签的开始符号'<'和结束符号'>'。

检测规则:

  • 如果字符串为空或空白,则视为有效
  • 如果字符串包含'<'或'>'字符,则视为无效(可能存在XSS风险)
  • 其他情况视为有效

注意:这是一个基础的XSS检测实现,适用于简单的场景。 对于更复杂的XSS防护需求,建议使用专业的HTML清理库。

Since:
2022-04-06
Author:
Cody Lu
  • Constructor Details

    • XssValidator

      public XssValidator()
  • Method Details

    • initialize

      public void initialize(Xss constraintAnnotation)
      初始化校验器

      该方法在校验器实例创建时被调用,用于进行必要的初始化操作。 对于XSS校验器,无需特殊的初始化逻辑。

      Specified by:
      initialize in interface jakarta.validation.ConstraintValidator<Xss,String>
      Parameters:
      constraintAnnotation - XSS约束注解实例
    • isValid

      public boolean isValid(String value, jakarta.validation.ConstraintValidatorContext context)
      执行XSS注入检测

      检测输入字符串是否包含可能导致XSS攻击的字符。 当前实现主要检测HTML标签的开始和结束符号。

      Specified by:
      isValid in interface jakarta.validation.ConstraintValidator<Xss,String>
      Parameters:
      value - 待检测的字符串值
      context - 约束验证上下文
      Returns:
      true 如果字符串不包含XSS风险字符,false 如果包含风险字符