У меня есть служба с выходом в Интернет, которая предоставляет API через https - json, xml и т.п. - что-то вроде https://api.example.org/api/foo. API обычно создаются из внутренних корпоративных сервисов, но даже если мы делаем запросы к внешнему интернет-сервису, я хочу, чтобы они отображались для клиентов как мои сервисы.
С точки зрения пользовательского агента https://api.example.org является сервером Origin.
Мы купили модный шлюз 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; DR
Безопасно ли удалять заголовок Via с сервера Origin?
Заголовок Via предназначен для перекладывания вины на кого-то другого.
Совершенно приемлемо удалить или не создавать его, если он не служит этой цели.