外观
SQL注入验证拦截器 🛡️
功能介绍 💡
WARNING
SQL注入验证拦截器就像一个安全卫士,负责检查和过滤所有可能包含SQL注入攻击的请求参数,保护您的数据库安全。它能自动识别和阻止恶意的SQL注入尝试。
支持的请求格式 📝
- ✅
application/x-www-form-urlencoded
- 表单数据 - ✅
application/json
- JSON数据 - ✅
url地址
- URL参数传递 - ❌
form-data
- 不支持此格式
详细配置说明 ⚙️
核心参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
enabled | boolean | 否 | false | 是否启用拦截器 |
urls | array | 是 | - | 需要进行SQL注入检查的URL列表 |
forbid-urls | array | 否 | - | 不需要进行SQL注入检查的URL列表 |
配置示例 📋
基础配置
yaml
wueasy:
gateway:
filter:
sql-injection:
enabled: true # 启用SQL注入验证
urls: # 需要验证的地址
- /** # 验证所有请求
高级配置
yaml
wueasy:
gateway:
filter:
sql-injection:
enabled: true
urls: # 需要验证的地址
- /api/** # 验证所有API请求
forbid-urls: # 排除的地址
- /api/public/** # 不验证公开接口
- /api/static/** # 不验证静态资源
防护说明 🔒
防护内容
SQL关键字检测
- SELECT, INSERT, UPDATE, DELETE
- UNION, JOIN, WHERE
- DROP, CREATE, ALTER
特殊字符检测
- SQL注释符号 (--, #)
- SQL连接符号 (😉
- 特殊转义字符
常见注入方式防护
- 字符串拼接注入
- 数字型注入
- 布尔型注入
- 时间型注入
最佳实践 💡
配置建议
- 建议对所有数据接口启用验证
- 合理配置排除规则
- 注意性能平衡
安全建议
- 配合参数验证使用
- 使用预编译语句
- 最小权限原则
监控建议
- 记录拦截日志
- 设置告警阈值
- 定期安全审计
常见问题 ❓
正常请求被拦截
- 检查参数是否包含SQL关键字
- 验证特殊字符使用
- 考虑添加到排除列表
性能问题
- 优化拦截规则
- 合理设置排除项
- 监控处理时间
绕过防护
- 定期更新规则
- 多层防护
- 加强监控
安全提示 ⚠️
CAUTION
- SQL注入防护是安全的基础,但不是全部
- 建议配合其他安全措施使用
- 定期更新防护规则
- 保持系统组件最新
- 监控异常请求行为
相关文档 📚
开发建议 💻
参数处理
java// 推荐:使用参数绑定 @GetMapping("/user") public User getUser(@RequestParam String id) { return userService.findById(id); }
SQL处理
java// 推荐:使用预编译语句 String sql = "SELECT * FROM users WHERE id = ?"; PreparedStatement pstmt = connection.prepareStatement(sql); pstmt.setString(1, userId);