Http

我可以安全地刪除 Via http 標頭嗎?

  • March 26, 2015

我有一個面向 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

無論他們是否可以使用它,我都不希望機器人和壞人知道我的主機名。

我可以刪除 Via 標頭,還是應該將其清理為公共名稱,例如

< Via: 1.0 api.example.org (Apache-Coyote/1.1) 

我知道為什麼存在 Via 標頭,並且我認為我的 api 伺服器不需要滿足 RFC,因為它充當 Origin 伺服器。(即使實際上它是網關/反向代理,客戶端也不需要知道這一點)。

TL; 博士

從源伺服器中刪除 Via 標頭是否安全?

Via 標頭旨在將責任轉嫁給其他人。

如果它不能達到這個目的,那麼刪除或不生成它是完全可以接受的。

引用自:https://serverfault.com/questions/678605