erroneous characters after protocol string

Maxim Dounin mdounin at mdounin.ru
Wed Mar 20 18:28:41 UTC 2013


Hello!

On Wed, Mar 20, 2013 at 09:55:55PM +0400, Михаил Монашёв wrote:

> Здравствуйте, Maxim.
> 
> В логе ошибок Апача вижу вот такие ошибки:
> [Wed Mar 20 18:48:05 2013] [error] [client 127.0.1.5] request failed: erroneous characters after protocol string: GET /r?r=http%3A%2F%2Flesfacadiersdelamediterranee.com %2Flevel%2F1%2Ffilm%2F412283%2F HTTP/1.0
> [Wed Mar 20 19:39:28 2013] [error] [client 127.0.1.5] request failed: erroneous characters after protocol string: GET /r?r=http%3A%2F%2Fdo-it-mobile.com%2Fstory.php%3Ftitle%3D\\xec\\xa0\\x84\\xeb\\xa1\\x80\\xeb\\xb4\\x89\\xec\\x82\\xac\\xeb\\x8b\\xa8-\\xeb\\xb6\\x80\\xed\\x99\\x9c-\\xec\\xa0\\x9c-3\\xec\\xa3\\xbc-\\xec\\xa0\\x9c\\xeb\\x8c\\x80\\xea\\xbd\\x83 HTTP/1.0
> 
> К    апачу    запросы    проксирует    nginx,   у   которого   включён
> accept_filter=httpready  .  Я  думал,  что  мусор до бэкенда пройти не
> может.  Но  как-то  получилось,  что  кривые запросы пропустил сначала
> акцепт-фильтр,  а  затем  и  nginx/1.3.11.  Хочется  понять, как такой
> запрос  прошёл  и  можно  ли  nginx-ом  прикрывать  Апач  от  мусорных
> запросов?

Accept-фильтр всё, что не понимает, пропускает, даже если это 
вообще не HTTP.  А nginx спокойно относится к использованию в URI 
любых не-специальных символов, особенно учитывая, что такие 
запросы вполне встречаются в реальности.

Если хочется проверять - это всегда можно сделать явно.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



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