外观
请求数据加密拦截器 🔐
功能介绍 💡
WARNING
请求数据加密拦截器就像一个解密专家,负责对加密的请求数据进行解密处理。在安全要求较高的系统中,它通过对请求参数进行加密传输来提升系统的整体安全性,有效防止数据在传输过程中被窃取或篡改。
支持的请求格式 📝
- ✅
application/x-www-form-urlencoded
- 表单数据 - ✅
application/json
- JSON数据 - ✅
url地址
- URL参数传递 - ❌
form-data
- 不支持此格式
加密算法说明 🔒
- 加密方式:3DES(Triple DES)加密算法
- 加密流程:对象 → JSON字符串 → 3DES加密
- 传输要求:加密后的数据必须使用
data
参数名传输
详细配置说明 ⚙️
核心参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
enabled | boolean | 否 | false | 是否启用拦截器 |
items | array | 是 | - | 加密规则配置列表 |
加密规则配置详解 (items)
参数名 | 类型 | 必填 | 说明 | 示例值 |
---|---|---|---|---|
urls | array | 是 | 需要进行解密的URL地址列表 | /demo/login |
secret | string | 是 | 3DES加解密密钥(24字符) | D5E5F589769DA629A2F8C344F4749C0A |
forbid-urls | array | 否 | 排除不需要解密的URL地址 | /demo/public/** |
headers | object | 否 | 请求头过滤规则,增加后只有匹配的请求头才可以进入此拦截器,默认为空,全部匹配(v1.5.2+) | {"appId": ["test","demo"]} |
配置示例 📋
基础配置
yaml
wueasy:
gateway:
filter:
request-decrypt:
enabled: true # 启用请求解密
items:
- urls: /demo/login,/demo/get # 需要解密的地址
secret: D5E5F589769DA629A2F8C344F4749C0A # 解密密钥
高级配置
yaml
wueasy:
gateway:
filter:
request-decrypt:
enabled: true
items:
- urls: /api/** # 所有API接口
secret: D5E5F589769DA629A2F8C344F4749C0A
forbid-urls: /api/public/** # 排除公开接口
headers: # 请求头过滤
appId: # 只处理特定应用的请求
- test
- demo
请求示例 📝
加密前的数据
json
{
"username": "admin",
"password": "123456"
}
加密后的请求
http
POST /demo/login HTTP/1.1
Content-Type: application/json
{
"data": "U2FsdGVkX1+2tOLqT8HqVJ6Y+6P8v+3/RjMYn+5p+8Q="
}
最佳实践 💡
密钥管理
- 使用足够长度和复杂度的密钥
- 不同环境使用不同的密钥
- 定期更换密钥
安全建议
- 使用HTTPS传输
- 配合签名验证使用
- 对敏感接口启用加密
性能优化
- 只对必要的接口启用加密
- 合理设置排除规则
- 避免对大文件传输使用加密
常见问题 ❓
解密失败
- 检查密钥是否正确
- 验证数据是否使用
data
参数传输 - 确认加密算法是否匹配
配置不生效
- 确认
enabled
是否为 true - 检查 URL 是否在配置列表中
- 验证请求格式是否支持
- 确认
性能问题
- 检查是否对大量数据进行加密
- 确认是否对高频接口启用了加密
- 优化加密范围
安全提示 ⚠️
CAUTION
- 密钥泄露会导致安全风险,请妥善保管
- 建议结合其他安全措施(如签名验证)一起使用
- 定期更新密钥,提高系统安全性
- 避免在日志中打印解密后的敏感数据