外观
XSS验证拦截器 🛡️
功能介绍 💡
WARNING
XSS验证拦截器就像一个内容安全过滤器,通过对请求参数进行HTML编码和过滤处理,防止跨站脚本攻击(XSS)。它能有效保护您的应用免受恶意脚本的侵害。
支持的请求格式 📝
- ✅
application/x-www-form-urlencoded- 表单数据 - ✅
application/json- JSON数据 - ✅
url地址- URL参数传递 - ❌
form-data- 不支持此格式
详细配置说明 ⚙️
核心参数说明
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| enabled | boolean | 否 | false | 是否启用拦截器 |
| items | array | 是 | - | XSS过滤规则列表 |
过滤规则配置详解 (items)
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| urls | array | 是 | - | 需要进行XSS过滤的URL列表 |
| forbid-urls | array | 否 | - | 不需要进行XSS过滤的URL列表 |
| safe-type | string | 否 | NONE | 安全级别类型 |
| add-attributes | array | 否 | - | 自定义允许的属性列表 |
| add-tags | array | 否 | - | 自定义允许的标签列表 |
| add-enforced-attributes | array | 否 | - | 强制添加的属性列表 |
| add-protocols | array | 否 | - | 允许的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安全建议 💡
配置建议
- 根据业务场景选择合适的安全级别
- 明确定义允许的HTML标签和属性
- 使用白名单而不是黑名单方式
最佳实践
- 对用户输入始终保持警惕
- 结合CSP(Content Security Policy)使用
- 定期更新安全规则
性能优化
- 合理配置过滤范围
- 避免过度过滤
- 缓存常用的过滤结果
常见问题 ❓
内容被过度过滤
- 检查安全级别设置
- 确认所需标签是否在白名单中
- 验证属性配置是否正确
富文本内容显示异常
- 使用 RELAXED 安全级别
- 添加必要的HTML标签
- 配置所需的属性
URL链接被过滤
- 检查协议白名单
- 确认href属性配置
- 验证URL格式
安全提示 ⚠️
CAUTION
- XSS防护是网站安全的重要环节
- 不要过分依赖客户端验证
- 定期检查和更新过滤规则
- 保持警惕,特别是处理用户输入时
- 监控异常内容和攻击行为