阿里云基于CDN边缘脚本(EdgeScript)限制请求方法
文章目录
问题描述
- 安全扫描过程中,安全人员测试使用 MOVE 方法请求服务,服务仍能正常响应请求,此配置不满足安全检测要求。
问题定位
- 正常情况下 MOVE 方法请求无法通过 Nginx,请求进入应用服务器。Nginx 配置有限制请求方法,不允许的 MOVE 请求,应该直接返回 405。
|
|
- 且与开发员沟通后确定,MOVE 方法在应用侧也无法正常响应
- 但实际请求测试发现,服务确实能正常响应
|
|
- 通过绑定 hosts,绕过 CDN 直接请求 Nginx 服务器发现,Nginx 是能限制 MOVE 方法的,MOVE 方法返回 405
|
|
- 经过测试发现,MOVE 方法在阿里云 CDN 回源过程中,会将请求方法转为 GET 方法回源。且与阿里云技术人员沟通过后确认确实会存在此问题,但是短期内没有解决方案。
- 此问题实际不影响服务安全,但客户那边要求处理,最后通过 CDN EdgeScript(边缘脚本)解决此问题
问题处理
- 问题出在 cdn 回源这一步,因此在 cdn 回源之前进行拦截可解决这个问题,而阿里云提供的边缘脚本功能刚好能处理此问题。
- EdgeScript 模拟环境添加规则

- 使用如下代码模板,并配置启用状态为开启,并发布到测试环境
|
|

- 使用调试工具测试规则是否符合预期

- 工具要求获取 Proxy IP


-
测试规则
- 测试 GET 请求,返回 301,正常响应
- 测试 DELETE 请求(规则内配置为不允许,CDN 提供的测试方法内不包含 MOVE),返回 405,请求被限制
-
发布至生产环境
- 注:发布后将在正式环境生效,请评估后再发布

- 查看生产环境配置确认已生效

- 去掉 hosts 内绕过 CDN 的配置,测试限制是否生效
|
|
参考
- EdgeScript概述:https://help.aliyun.com/document_detail/126565.html
- EdgeScript内置函数库:https://help.aliyun.com/document_detail/126869.html
文章作者 Xiang
上次更新 2022-07-22