外观
请求来源验证拦截器 🔒
功能介绍 💡
WARNING
请求来源验证拦截器(Referer Filter)就像网站的门卫,负责检查访问请求的来源是否可信。它能有效防止未经授权的网站盗用API接口,保护您的系统资源。
应用场景 🎯
- ✅ 防止接口盗用 - 限制只允许指定域名的网站调用接口
- ✅ 跨域安全控制 - 管理跨域请求的访问权限
- ✅ 资源保护 - 防止其他网站直接引用您的API资源
详细配置说明 ⚙️
核心参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
enabled | boolean | 否 | false | 是否启用拦截器 |
items | array | 是 | - | 拦截规则配置列表 |
拦截规则配置详解 (items)
参数名 | 类型 | 必填 | 说明 | 示例值 |
---|---|---|---|---|
urls | array | 是 | 需要进行来源验证的URL地址列表 | /** |
hosts | array | 是 | 允许访问的域名列表,支持通配符 | *.wueasy.com |
域名匹配规则说明 📝
精确匹配
www.wueasy.com
- 只允许来自此域名的请求
通配符匹配
*.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" # 允许所有子域名
最佳实践 💡
安全性建议
- 避免使用过于宽松的通配符(如
*
) - 建议配置具体的子域名范围
- 生产环境务必启用 HTTPS
- 避免使用过于宽松的通配符(如
配置建议
- 对不同类型的API设置不同的访问限制
- 为开发环境和生产环境配置不同的规则
- 定期审查和更新允许访问的域名列表
常见问题 ❓
请求被拦截
- 检查请求的Referer头是否存在
- 验证域名是否在允许列表中
- 确认URL匹配规则是否正确
配置不生效
- 确认
enabled
是否设置为 true - 检查
urls
配置是否正确匹配请求路径 - 验证
hosts
配置的域名格式是否正确
- 确认
跨域问题
- 配合CORS配置使用
- 确保允许的域名在两处配置中保持一致
安全提示 ⚠️
CAUTION
- Referer验证应该作为安全措施的一部分,不能作为唯一的安全手段
- 某些情况下Referer可能被篡改,建议配合其他安全措施使用
- 定期检查和更新允许的域名列表,移除不再使用的域名