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 mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx-ru

Ответить