Skip to content

响应数据加密拦截器 🔐

功能介绍 💡

WARNING

响应数据加密拦截器就像一个加密邮差,负责在数据返回给客户端之前对其进行加密处理。在高安全要求的系统中,它通过对响应数据进行加密来保护敏感信息,防止数据在传输过程中被窃取或篡改。

核心特性

  • 🔒 使用高安全性的 3DES 加密算法
  • 📦 加密数据统一通过 data 字段返回
  • ✅ 使用 encrypt: true 标识数据已加密

详细配置说明 ⚙️

核心参数说明

参数名类型必填默认值说明
enabledbooleanfalse是否启用拦截器
itemsarray-加密规则配置列表

加密规则配置详解 (items)

参数名类型必填说明示例值
urlsarray需要进行加密的URL地址列表/demo/login
secretstring3DES加解密密钥(24字符)D5E5F589769DA629A2F8C344F4749C0A
forbid-urlsarray排除不需要加密的URL地址/demo/public/**
headersobject请求头过滤规则,增加后只有匹配的请求头才可以进入此拦
截器,默认为空,全部匹配(v1.5.2+){"appId": ["test","demo"]}

配置示例 📋

基础配置

yaml
wueasy:
  gateway:
    filter:
      response-encrypt:
        enabled: true  # 启用响应加密
        items:
        - urls: /demo/login,/demo/get  # 需要加密的地址
          secret: D5E5F589769DA629A2F8C344F4749C0A  # 加密密钥

高级配置

yaml
wueasy:
  gateway:
    filter:
      response-encrypt:
        enabled: true
        items:
        - urls: /api/**  # 所有API接口
          secret: D5E5F589769DA629A2F8C344F4749C0A
          forbid-urls: /api/public/**  # 排除公开接口
          headers:  # 请求头过滤
            appId:  # 只处理特定应用的请求
            - test
            - demo

响应示例 📝

加密前的响应数据

json
{
    "code": 0,
    "msg": "success",
    "data": {
        "userId": "12345",
        "username": "admin",
        "token": "eyJhbGciOiJIUzI1NiJ9..."
    }
}

加密后的响应数据

json
{
    "code": 0,
    "msg": "success",
    "data": "U2FsdGVkX1+2tOLqT8HqVJ6Y+6P8v+3/RjMYn+5p+8Q=",
    "encrypt": true
}

最佳实践 💡

  1. 密钥管理

    • 使用高强度的密钥(建议24位以上)
    • 不同环境使用不同的密钥
    • 定期更换密钥
    • 安全存储密钥,避免泄露
  2. 加密策略

    • 只对敏感数据接口启用加密
    • 合理使用排除规则
    • 避免对大数据量响应启用加密
    • 配合请求加密使用,实现双向加密
  3. 性能优化

    • 设置合理的缓存策略
    • 避免重复加密
    • 监控加密性能影响

常见问题 ❓

  1. 加密失败

    • 检查密钥格式是否正确
    • 验证数据格式是否符合要求
    • 确认加密算法配置是否正确
  2. 客户端解密问题

    • 确保使用相同的密钥
    • 验证加密算法实现是否一致
    • 检查是否正确处理 encrypt 标志
  3. 性能问题

    • 评估加密对响应时间的影响
    • 优化加密范围
    • 考虑使用缓存机制

安全提示 ⚠️

CAUTION

  1. 密钥是系统安全的核心,必须严格保护
  2. 建议使用HTTPS传输加密数据
  3. 定期更新密钥,降低泄露风险
  4. 避免在日志中打印加密密钥和原始数据
  5. 建议配合请求加密和签名验证使用

相关文档 📚