ABAP 里到底要不要手动设置 Content-Security-Policy,答案取决于它处在 HTTP 链路的哪一层
在 SAP 项目里,这个问题通常不是从写 ABAP 代码开始的,而是从一次安全扫描开始的。我们的 SAP Fiori、BSP、自定义 ICF 服务或者 SAP Gateway 入口经过安全扫描之后,报告里突然出现Missing Content-Security-Policy HTTP Response Header。看到这条报告,很自然会想到一个问题,是否应该进入 ABAP Handler,在每一次 HTTP Response 返回之前调用SET_HEADER_FIELD,把Content-Security-Policy塞进去。我的判断很明确。对于正常的 SAP ABAP 应用开发,尤其是 SAP Fiori、SAP Gateway、OData、RAP、经典 ICF 服务这一类场景,通常不应该把Content-Security-Policy简化成一段需要散落在业务 ABAP 类里的手工代码。更合理的做法,是让 SAP 提供的 HTTP 安全头框架、ICF 配置、ICM、SAP Web Dispatcher,或者 SAP BTP ABAP environment 本身的 CSP 管理能力承担统一治理。但这不等于 ABAP 完全不能操作这个 HTTP Response Header。经典 AS ABAP 的 HTTP API 明确允许程序通过IF_HTTP_RESPONSE所继承的能力调用SET_HEADER_FIELD修改响应头。SAP 官方文档对IF_HTTP_ENTITY的说明中明确列出了