Re: error 40 на запросах с "%u041A"

Sergey Shepelev temotor на gmail.com
Чт Май 5 18:33:21 MSD 2011


2011/5/5 Anton Gorlov <stalker at altlinux.ru>:
> Попался 1 странный клиент у которого uri запросы выглядит как
>
> http://domain.name/admin/statistic/index/name/%u041A%u0443%u0437%u044F%20%u0432%u0430%u0440%u0435%u0436%u043A%u0438/
>
> на который nginx рапортует
> 400 Bad Request
> nginx/1.0.0
>
> error_log ничего  не помог понять почему выдаётся 400 ошибка.
> В аццес-логе лишь
> [05/May/2011:16:03:49 +0400] "GET
> /admin/statistic/index/name/%u041A%u0443%u0437%u044F%20%u0432%u0430%u0440%u0435%u0436%u043A%u0438%u043D/
> HTTP/1.1" 400 173 "-" "-"
>

Во-первых, очень странно искать ошибки в access-логе. access = доступ.
ошибка = error.

А 400 клиент получает совершенно заслужено, т.к. присылает
некорректный запрос. URL Encoding это % и байт в шестнадцатиричной
кодировке. Например, %40 это @.

Ваш странный клиент использует нестандартную Unicode URL кодировку.
Скорее всего, потому что кто-то криворукий использовал в жаваскрипте
escape вместо encodeURI.
http://stackoverflow.com/questions/155892/unicode-url-decoding


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