Skip to content

XSS验证拦截器 🛡️

功能介绍 💡

WARNING

XSS验证拦截器就像一个内容安全过滤器,通过对请求参数进行HTML编码和过滤处理,防止跨站脚本攻击(XSS)。它能有效保护您的应用免受恶意脚本的侵害。

支持的请求格式 📝

  • application/x-www-form-urlencoded - 表单数据
  • application/json - JSON数据
  • url地址 - URL参数传递
  • form-data - 不支持此格式

详细配置说明 ⚙️

核心参数说明

参数名类型必填默认值说明
enabledbooleanfalse是否启用拦截器
itemsarray-XSS过滤规则列表

过滤规则配置详解 (items)

参数名类型必填默认值说明
urlsarray-需要进行XSS过滤的URL列表
forbid-urlsarray-不需要进行XSS过滤的URL列表
safe-typestringNONE安全级别类型
add-attributesarray-自定义允许的属性列表
add-tagsarray-自定义允许的标签列表
add-enforced-attributesarray-强制添加的属性列表
add-protocolsarray-允许的URL协议列表

安全级别类型说明

类型说明适用场景
NONE无过滤完全信任的内容
SIMPLE_TEXT仅允许纯文本用户评论、简单描述
BASIC基础HTML标签简单格式文本
BASIC_WITH_IMAGES基础HTML+图片带图片的文本内容
RELAXED宽松模式富文本编辑器内容

配置示例 📋

基础配置

yaml
wueasy:
  gateway:
    filter:
      xss:
        enabled: true
        items: 
        - urls: 
          - /api/**
          safe-type: BASIC  # 基础安全级别

富文本编辑器配置

yaml
wueasy:
  gateway:
    filter:
      xss:
        enabled: true
        items: 
        - urls: 
          - /**
          safe-type: RELAXED  # 宽松模式
          add-tags:  # 允许额外的HTML标签
          - div
          - table
          add-attributes:  # 允许的属性
          - tag: a
            attributes: 
            - href
            - style
          - tag: ":"  # 所有标签通用
            attributes: 
            - style
          add-enforced-attributes:  # 强制添加的属性
          - tag: a
            attribute: rel
            value: nofollow
          add-protocols:  # 允许的URL协议
          - tag: img
            attribute: src
            protocols:
            - http
            - https

安全建议 💡

  1. 配置建议

    • 根据业务场景选择合适的安全级别
    • 明确定义允许的HTML标签和属性
    • 使用白名单而不是黑名单方式
  2. 最佳实践

    • 对用户输入始终保持警惕
    • 结合CSP(Content Security Policy)使用
    • 定期更新安全规则
  3. 性能优化

    • 合理配置过滤范围
    • 避免过度过滤
    • 缓存常用的过滤结果

常见问题 ❓

  1. 内容被过度过滤

    • 检查安全级别设置
    • 确认所需标签是否在白名单中
    • 验证属性配置是否正确
  2. 富文本内容显示异常

    • 使用 RELAXED 安全级别
    • 添加必要的HTML标签
    • 配置所需的属性
  3. URL链接被过滤

    • 检查协议白名单
    • 确认href属性配置
    • 验证URL格式

安全提示 ⚠️

CAUTION

  1. XSS防护是网站安全的重要环节
  2. 不要过分依赖客户端验证
  3. 定期检查和更新过滤规则
  4. 保持警惕,特别是处理用户输入时
  5. 监控异常内容和攻击行为

相关文档 📚