Итак, сегодня я обнаружил это в своих журналах:
174.0.111.178 - - [17/Feb/2013:17:39:49 -0900] "k\x8a4\x8f\x9f\x1c\xfb\xb9\xf4\xb8\x97CI\xa3w\xeb\xf9\xb2\xb4\b\xb9\x04\x05\xe1M\x88C\xde\xed<\x13\b\xfd\b\x9d\xb047\xe5k\x87\r\xc6\x1a\xab\x16b" 400 301 "-" "-"
Также это из журнала ошибок (тот же запрос):
[Sun Feb 17 17:39:49 2013] [error] [client 174.0.111.178] Invalid URI in request k\x8a4\x8f\x9f\x1c\xfb\xb9\xf4\xb8\x97CI\xa3w\xeb\xf9\xb2\xb4\b\xb9\x04\x05\xe1M\x88C\xde\xed<\x13\b\xfd\b\x9d\xb047\xe5k\x87\r\xc6\x1a\xab\x16b
Кто-нибудь знает, что это значит? Я думаю, это какой-то шестнадцатеричный код или что-то в этом роде, но мне было интересно, потому что я получаю один из них каждые несколько дней или около того, а также, потенциально опасно.
Это непечатаемые символы в HTTP-запросе. Это может быть кто-то, пытающийся использовать ваш сервер или столь же безобидный, как запрос, содержащий многобайтовые символы Юникода.
В Руководство Apache mod_log_config объясняет формат:
По соображениям безопасности, начиная с версии 2.0.46, непечатаемые и другие специальные символы в% r,% i и% o экранируются с помощью последовательностей \ xhh, где hh обозначает шестнадцатеричное представление необработанного байта.