суббота, 7 декабря 2013 г.

Squid: Работаем с HTTP-headers

Вообще говоря, модификации заголовков HTTP - нарушение стандарта. Мы все это знаем :) и продолжаем в корыстных целях с ними ковыряться.

Как обычно, интернет переполнен дезой, не содержащей корректных конфигов, и к тому же они обычно не проверяются авторами на правильность. Лишь бы спереть и высказаться (еще и по-русски пишут безграмотно, причем списывают с одинаковыми ошибками, как в начальной школе).

Поскольку мы люди правильные, мы ничего непроверенного не болтаем. :)

Итак, "вот ваш друг, Билли!"

# Hide internal networks details outside
forwarded_for off

# Replace useragent
header_access User-Agent deny all
header_replace User-Agent Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko

# Header control
header_access X-Cache deny all
header_access X-Cache-Lookup deny all
header_access X-Forwarded-For deny all
header_access Forwarded-For deny all
header_access Via deny all


Этот блок взять из работающей конфигурации сервера, функционирующего в настоящий момент и проходящего все внешние тесты согласно конфигурации. :)

В принципе, комментарии исчерпывающе объясняют суть манипуляций. Как видно, мы минимальным образом вмешиваемся в заголовки и преследуем лишь три цели:

1. Скрыть детали внутренней сети от веб-сайтов.
2. Скрыть существование прокси по  дороге от клиента до сайта.
3. Заменить заголовок User-Agent на IE 11 :) Дабы вызвать брожение среди красноглазых пингвиноёпингвинофилов.

Обратите внимание на следующее.

Первое. Не надо много заголовков ковырять - это все же нарушение стандарта. :) Того, что у меня написано - хватамбо для того, чтобы все обнаружители прокси обломались. Проверил на всех, до которых дотянулся.

И второе - для замены User-Agent надо сперва вырубить все внутренние заголовки, а уже потом делать их замену. Иначе не работает.

PS. Господа копипастеры, выдающие себя за айтишников! Вы на внешних тестах свои конфигурации хоть раз проверяйте. А то кажущееся вам поведение здорово расходится с истинным.