Вот именно это я бы отнес к третьему минусу СМС платежей. Несколько раз уже мне выносили мозг из-за потерянной СМС-ки. Субаггрегатор утверждает, что СМС не доходила, оператор что доходила, до аггрегатора не достучишься. Вроде и 30-60 рублей деньги не большие просто их вернуть, но так клиент уже уверен, что мой белый и пушистый сайт его пытался нагреть.
А зачем парня заминусовали? Человек не постеснялся сказать, что чего-то не знал — так это же хорошо. Такие вещи нужно наоборот поощрять.
Никто опытным не рождается. Я как раз для таких людей и писал заметку.
Если скрипт должен собирать статистику в БД, а программист не ожидает подвоха, то вполне возможно. Понятно, что данные перед записью в БД должны фильтроваться в любом случае.
Еще в самом первом комментарии прекрасный пример XSS — нарочно и не придумаешь.
Фильтровать нужно только если используется. Ничем не круче REFERRER. Я к сожалению, сейчас не найду, но на том же Гитхабе видел подключение конфигурационных файлов по полученному имени хоста. Потенциально это дыра.
То есть с одной стороны программисты не фильтруют, т.к. это должно быть сконфигурировано админами, а админы оставляют на откуп программистам. Возьмите любой шаред хостинг и почти наверняка получится повторить приведенные в посте примеры.
Совершенно верно. Добавлю, что я не ставил себе цели описать все возможные векторы атак, а лишь пытался дать предостережение тем программистам и системным администраторам, которые не придавали этим переменным должного внимания.
Как показывает практика, это не такая уж и редкость.
К сожалению, именно HTTP_HOST часто оставляют без валидации. Хотя все эти переменные начинаются с HTTP_, что как бы намекает. А вот с SERVER_NAME менее очевидно.
Любой мисконфигурейшин может стать уязвимостью и многие (не все) уязвимости есть следствие мисконфигурейшина.
В HTTP_HOST кроме подмены самого хоста можно передать непредусмотренную последовательность символов.
Не совсем. В статье есть пример с таким вот запросом через telnet GET http://site3.dev/phpinfo.php HTTP/1.1
Если имя сервера передано в первой строке запроса, то в дальше оно может быть переопределено. Host:~%#$^&*()<>?@\!."'{}[]=+|
Можно ограничиться защитой только на стороне Nginx, но для этого стоит явно определить переменную HTTP_HOST: fastcgi_param HTTP_HOST $host;
Разрешение экрана: 1600х900
Зачем такой большой экран с таким маленьким разрешением? Он все равно проигрывает айпаду и другим устройствам с бо'льшим разрешением.
Насколько мне известно, некоторые дополнительные материалы по теме можно найти, например, в книге Фукунга К. «Введение в статистическую теорию распознавания образов».
Статья хорошая. Статистические методы распознавания сейчас нередко игнорируются в пользу нейронных сетей, а это не всегда правильно.
> все пытаются походить на Google Chrome
Что за нелепое предположение?
> Вот и получается, что все они практически одинаковы
Вовсе не одинаковы.
А результаты, которые вы приводите, конечно, очень интересные.
Никто опытным не рождается. Я как раз для таких людей и писал заметку.
Еще в самом первом комментарии прекрасный пример XSS — нарочно и не придумаешь.
То есть с одной стороны программисты не фильтруют, т.к. это должно быть сконфигурировано админами, а админы оставляют на откуп программистам. Возьмите любой шаред хостинг и почти наверняка получится повторить приведенные в посте примеры.
Как показывает практика, это не такая уж и редкость.
В HTTP_HOST кроме подмены самого хоста можно передать непредусмотренную последовательность символов.
GET http://site3.dev/phpinfo.php HTTP/1.1
Если имя сервера передано в первой строке запроса, то в дальше оно может быть переопределено.
Host:~%#$^&*()<>?@\!."'{}[]=+|
Можно ограничиться защитой только на стороне Nginx, но для этого стоит явно определить переменную HTTP_HOST:
fastcgi_param HTTP_HOST $host;
Замечательный мануал у вас получился.
Зачем такой большой экран с таким маленьким разрешением? Он все равно проигрывает айпаду и другим устройствам с бо'льшим разрешением.
Статья хорошая. Статистические методы распознавания сейчас нередко игнорируются в пользу нейронных сетей, а это не всегда правильно.
Что за нелепое предположение?
> Вот и получается, что все они практически одинаковы
Вовсе не одинаковы.
А результаты, которые вы приводите, конечно, очень интересные.