Http
我可以安全地刪除 Via http 標頭嗎?
我有一個面向 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 標頭旨在將責任轉嫁給其他人。
如果它不能達到這個目的,那麼刪除或不生成它是完全可以接受的。