Я прочитал свои лог-файлы в R, и когда я смотрю на реферера, появляются странные записи:
> logs <- read.table("logfile")
> referer <- data.frame(table(logs$referer))
> head(referer, 2)
Var1 Freq
1 157
2 - 250290
Apache использует тире (-
) для обозначения отсутствующего реферера.Это строка 2. Так что же означает пустая строка (``) в строке 1?На мой взгляд, это может произойти только в том случае, если Apache «забыл» записать реферер в файл журнала.
Вот одна из 157 записей с пустой строкой реферера (я анонимизировал ip клиента и мой веб-сайт).URL):
173.244.xxx.xxx - - [17/Apr/2018:08:07:46 +0200] "GET /feeds/atom.xml HTTP/1.1" 200 18820 www.my-website.com "" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36; +collection@infegy.com" "-"
Но самые загадочные рефереры выглядят так:
554fcae493e564ee0dc75bdf2ebf94caads|a:2:{s:3:"num";s:280:"*/ union select 1,0x272f2a,3,4,5,6,7,8,0x7b24617364275d3 ...
Я обрезал строку в конце (она продолжается немного дольше),потому что я не знаю, содержит ли он конфиденциальную информацию.У меня около 20 посещений с такими реферерами, все с одного и того же клиента ip, большинство из которых запрашивают ресурсы, которых нет на моем сервере, такие как //user.php
и //cm.php
.
Мне кажетсячто это, по крайней мере частично, запросы MySQL.a:2:{s:3:"num";s:459:"
- начало сериализованного массива.Я использую этот формат для хранения некоторых данных из веб-формы в базе данных MySQL.Но эта обработка происходит на стороне сервера и никогда не отправляется в браузер пользователя.И как в любом случае запрос MySQL становится реферером?Я понимаю, что кто-то может попытаться ввести код MySQL в веб-форму, но это не делает эту часть реферером.
Любые объяснения были бы хорошими.