Skip to content

请求来源验证拦截器 🔒

功能介绍 💡

WARNING

请求来源验证拦截器(Referer Filter)就像网站的门卫,负责检查访问请求的来源是否可信。它能有效防止未经授权的网站盗用API接口,保护您的系统资源。

应用场景 🎯

  • 防止接口盗用 - 限制只允许指定域名的网站调用接口
  • 跨域安全控制 - 管理跨域请求的访问权限
  • 资源保护 - 防止其他网站直接引用您的API资源

详细配置说明 ⚙️

核心参数说明

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

拦截规则配置详解 (items)

参数名类型必填说明示例值
urlsarray需要进行来源验证的URL地址列表/**
hostsarray允许访问的域名列表,支持通配符*.wueasy.com

域名匹配规则说明 📝

  1. 精确匹配

    • www.wueasy.com - 只允许来自此域名的请求
  2. 通配符匹配

    • *.wueasy.com - 允许所有wueasy.com的子域名
    • *.com - 允许所有.com顶级域名
    • * - 允许所有域名(不推荐)

配置示例 📋

基础配置

yaml
wueasy:
  gateway:
    filter:
      referer:
        enabled: true  # 启用来源验证
        items:  # 拦截规则列表
        - urls: /**  # 拦截所有请求
          hosts:  # 允许的域名列表
          - "*.wueasy.com"  # 允许所有wueasy.com子域名

多规则配置

yaml
wueasy:
  gateway:
    filter:
      referer:
        enabled: true
        items:
        - urls: /api/**  # 拦截所有API请求
          hosts:
          - "api.wueasy.com"  # 只允许指定域名
          - "dev.wueasy.com"  # 允许开发环境域名
        - urls: /public/**  # 拦截公共接口
          hosts:
          - "*.wueasy.com"  # 允许所有子域名

最佳实践 💡

  1. 安全性建议

    • 避免使用过于宽松的通配符(如 *
    • 建议配置具体的子域名范围
    • 生产环境务必启用 HTTPS
  2. 配置建议

    • 对不同类型的API设置不同的访问限制
    • 为开发环境和生产环境配置不同的规则
    • 定期审查和更新允许访问的域名列表

常见问题 ❓

  1. 请求被拦截

    • 检查请求的Referer头是否存在
    • 验证域名是否在允许列表中
    • 确认URL匹配规则是否正确
  2. 配置不生效

    • 确认 enabled 是否设置为 true
    • 检查 urls 配置是否正确匹配请求路径
    • 验证 hosts 配置的域名格式是否正确
  3. 跨域问题

    • 配合CORS配置使用
    • 确保允许的域名在两处配置中保持一致

安全提示 ⚠️

CAUTION

  1. Referer验证应该作为安全措施的一部分,不能作为唯一的安全手段
  2. 某些情况下Referer可能被篡改,建议配合其他安全措施使用
  3. 定期检查和更新允许的域名列表,移除不再使用的域名

相关文档 📚