Re: proxy cache key и fastcgi cache key

S.A.N nginx-forum at nginx.us
Thu Jan 9 19:03:32 UTC 2014


Gena Makhomed Wrote:
-------------------------------------------------------
> возможно имеет смысл дефолтовые настройки сделать такими,
> чтобы они были безопасными по-умолчанию для всех пользователей?
> т.е. $host вместо $proxy_host ?

Поддержу данную мысль, это добавило бы безопасности дефолтного конфига
Nginx.
Вот наглядный пример:
fastcgi_param	HTTP_HOST1		$http_host;
fastcgi_param	HTTP_HOST2		$host;
fastcgi_param	HTTP_HOST3		$server_name;

Делаем, запрос
GET http://site3.dev/ HTTP/1.1
Host:~%#$^&*()<>?@\!."'{}[]=+|

На выходе получим
_SERVER["HTTP_HOST1"]: ~%#$^&*()<>?@\!."'{}[]=+|
_SERVER["HTTP_HOST2"]: site3.dev
_SERVER["HTTP_HOST3"]: site2.dev

Кому интересно почитать, подробней вот ссылка.
http://habrahabr.ru/post/166855/

Как видите, корректное значения имеют только переменные $host и
$server_name, все что основывается на $http_host имеет потенциал уязвимость,
если бекенд доверяет этой переменой, лично я знаю несколько популярных РНР
фрейморков которые используют эту переменную без проверки и без
экранирования в SQL запросах.
 
Для вирт хостов $server_name нельзя использовать как HTTP_HOST, вот
переменную $host можно и считаю нужно использовать как HTTP_HOST.

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,246086,246198#msg-246198



Подробная информация о списке рассылки nginx-ru