str*_*y05 3 http reverse-proxy
我有一个面向 Internet 的服务,它通过 https 提供 API - json、xml 等 - 类似于https://api.example.org/api/foo。API 通常是从公司内部服务构建的,但即使我们向基于外部 Internet 的服务发出请求,我也希望它们向客户显示为我的服务。
从用户代理的角度来看,https://api.example.org是源服务器。
我们购买了一个花哨的供应商 API 网关产品来保护 API。到现在为止还挺好。
目前,网关将 Via 标头附加到包含处理请求的服务器的内部主机名的请求中,这不太好。
> GET /api/foo/bar HTTP/1.1
> User-Agent: curl/7.37.1
> Host: api.example.org
> Accept: */*
>
< HTTP/1.1 200 OK
< Content-Type: application/json
< Date: Thu, 15 Mar 2015 22:11:46 GMT
< Max-Forwards: 20
* Server Apache-Coyote/1.1 is not blacklisted
< Server: Apache-Coyote/1.1
< Via: 1.0 myinternalhostname.local (Apache-Coyote/1.1)
< transfer-encoding: chunked
< Connection: keep-alive
Run Code Online (Sandbox Code Playgroud)
无论他们是否可以使用它,我都不希望机器人和坏人知道我的主机名。
我可以删除 Via 标头,还是应该将其清理为公共名称,例如
< Via: 1.0 api.example.org (Apache-Coyote/1.1)
Run Code Online (Sandbox Code Playgroud)
我知道为什么 Via 标头存在,而且我认为我的 api 服务器不需要满足 RFC,因为它充当 Origin 服务器。(即使实际上它是网关/反向代理,客户端也不需要知道这一点)。
TL; 博士
从源服务器中删除 Via 标头是否安全?
| 归档时间: |
|
| 查看次数: |
1472 次 |
| 最近记录: |