如何为WSO2 APIM(4.1.0)的/service和/services端点添加HTTP安全头
解决WSO2 API管理器中/service和/services端点的安全响应头问题
你遇到的是WSO2 APIM网关默认端点未继承主序列安全头的问题,这两个端点属于网关自带的Axis2服务端点,不受主/错误序列的默认覆盖,以下是两种可行的解决方式:
一、给/service和/services添加安全响应头
可以通过创建全局拦截序列,针对这两个路径的请求追加安全头:
- 登录APIM管理控制台,进入网关 > 序列,新建一个全局出站序列
- 在序列中添加
Filter中介器,匹配请求路径:<filter regex="^/(service|services)(/.*)?$" source="get-property('axis2', 'REST_URL_POSTFIX')"> <then> <!-- 这里添加你的安全响应头配置,示例如下 --> <header name="X-Frame-Options" value="DENY" scope="transport"/> <header name="Content-Security-Policy" value="default-src 'self'" scope="transport"/> <header name="X-Content-Type-Options" value="nosniff" scope="transport"/> </then> </filter> - 将这个序列绑定到网关的全局出站流程,确保响应返回客户端前触发该序列
这种方式可以在不修改核心配置的前提下,为目标端点补上安全头,适合需要保留这两个端点的场景。
二、直接禁用/service和/services端点
如果你的业务不需要这两个默认服务(它们主要用于Axis2服务的元数据查询),直接禁用是更安全的选择,能减少攻击面:
- 找到网关节点的
repository/conf/deployment.toml配置文件 - 添加以下配置项:
[transport.http.properties] exposeAxis2Services = false exposeAxis2AdminServices = false - 重启WSO2 APIM网关节点,之后访问/service或/services会返回404错误
补充说明
- 优先推荐禁用:除非内部系统依赖这两个端点的服务列表查询功能,否则禁用能彻底消除这类安全扫描告警
- 若必须保留,务必确保安全头配置和主序列保持一致,避免出现配置不一致的安全漏洞
内容的提问来源于stack exchange,提问作者rajeevbk
相关产品推荐
相关产品推荐

