AddHeader插件

AddHeader插件通过在应用程序中添加HTTP响应头来提高Web应用程序的安全性。插件默认提供了HTTP响应头的基准配置,您也可以在填充模板参数时添加自定义响应头,或覆盖默认提供的响应头。

重要

本插件必须生效于ASM网关服务。

前提条件

配置字段

名称

数据类型

填写要求

默认值

描述

headers

string map

可选

{}

配置自定义的响应头配置。

配置示例

配置响应头基准配置以保护应用程序安全

OWASP提供了最佳实践指南和编程框架,描述了如何使用安全响应头保护应用程序的安全。有关HTTP响应头的基准配置,请参见在ASM中通过EnvoyFilter添加HTTP响应头AddHeader插件默认向网关的响应头中插入HTTP响应头基准配置,以保护应用程序的安全。无需配置任何参数,选择插件的生效范围为网关生效,并选择生效至网关ingressgateway

执行以下命令,进行测试。

curl -I {网关ip地址}/get

预期输出:

HTTP/1.1 200 OK
server: istio-envoy
date: Thu, 16 Jun 2022 07:10:08 GMT
content-type: application/json
content-length: 504
access-control-allow-origin: *
access-control-allow-credentials: true
x-envoy-upstream-service-time: 3
content-security-policy: frame-ancestors none;
x-frame-options: deny
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
referrer-policy: no-referrer
x-download-options: noopen
x-dns-prefetch-control: off
feature-policy: camera 'none';microphone 'none';geolocation 'none';encrypted-media 'none';payment 'none';speaker 'none';usb 'none';

可以看到,响应头中已经添加了content-security-policyx-fram-optionsx-xss-protection等保护应用程序的基准响应头。

在网关的请求响应中增加自定义响应头

通过在AddHeader插件的参数headers中提供响应头内容,来改写AddHeader插件默认添加的基准响应头,或者在默认基准响应头的基础上添加自定义响应头。 例如,在插件参数中填写如下配置:

headers:
  x-xss-protection: "0"
  app: httpbin

此参数将网关响应头中的x-xss-protection内容改写为0,并增加一个自定义的响应头app: httpbin

选择插件的生效范围为网关生效,并选择生效至网关ingressgateway

执行以下命令,进行测试。

curl -I {网关ip地址}/get

预期输出:

HTTP/1.1 200 OK
server: istio-envoy
date: Thu, 16 Jun 2022 07:19:51 GMT
content-type: application/json
content-length: 504
access-control-allow-origin: *
access-control-allow-credentials: true
x-envoy-upstream-service-time: 2
app: httpbin
x-xss-protection: 0
content-security-policy: frame-ancestors none;
x-frame-options: deny
x-content-type-options: nosniff
referrer-policy: no-referrer
x-download-options: noopen
x-dns-prefetch-control: off
feature-policy: camera 'none';microphone 'none';geolocation 'none';encrypted-media 'none';payment 'none';speaker 'none';usb 'none';

可以看到,响应头中的x-xss-protection已经改写为0,同时增加了响应头app: httpbin