Исследуя сегодня логи этого домена обнаружил следющее
- 3768 Yandex/1.01.001 (compatible; Win16; I)
- 4472 StackRambler/2.0 (MSIE incompatible)
- 6851 Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.4) Gecko/2008102920 Firefox/3.0.4
- 7365 Opera/9.62 (Windows NT 5.1; U; ru) Presto/2.1.1
- 8089 Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.6) Gecko/2009020911 Ubuntu/8.04 (hardy) Firefox/3.0.6
- 8965 Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2) Gecko/20080829071937 Shiretoko/3.1a2
- 12667 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Получалось так, что непропатченный MSIE 6.0 самый частый посетитель моего сайт посвящённого Linux, программированию, Gimp и технофашизму. Но как известно пользователи MSIE 6.0 являются отпетыми дебилами и всё своё время проводят на порносайтах и других браузерных играх. Разумеется я заподозрил неладное и начал анализировать логи:
ls |sort |xargs bzcat | awk '{print $7}'|sort |uniq -c |sort -n|tail -5
- 4279 /images/rss.png
- 6015 /blog/id/66/
- 6129 /blog/id/157
- 7702 /blog5.css
- 8078 /mag/ffjs.js
Если в 1,2 и 5 всё ясно, то не ясно, отчего такая популярность у статитьи про Lexx и mod_rewrite, тогда я сделал так:
ls |sort |xargs bzcat | awk '{print $7}'|grep /blog/| sort |uniq -c |sort -n|tail
- 191 /blog/id/176
- 225 /blog/id/76
- 229 /blog/stat/hour
- 284 /blog/id/88
- 324 /blog/short/Gimp
- 409 /blog/stat/system
- 1931 /blog/
- 2003 /blog/id/107
- 6015 /blog/id/66/
- 6129 /blog/id/157
вот тут уже чётко видно, что эти странички заспамлены, раньше туда регулярно постили спам в комментах, но с появлением фильтра спам пропал, но видимо тупые вендузятники продолжают ломиться по этим урлам
В общем я решил закрыть доступ к этим страницам всем идиотам, а сделать это легко:
Во-первых идиоты пользуются Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Во-вторых помогать нам будет mod_rewrite
Правила для блога у меня лежат в отдельной папке /blog/.htaccess , по-этому новые правила нужно добавить туда
RewriteCond %{HTTP_USER_AGENT} MSIE
RewriteCond %{REQUEST_URI} blog/id/(66|107|157)
RewriteCond %{HTTP_REFERER} ^$
RewriteRule .* - [F]
В первом условии отбираем всех идиотов, пользователей MSIE
Во втором отбираем запросы которые соотвествуют blog/id/66 blog/id/107 blog/id/157
В третьих пропускаем всех, кто пришёл сюда не по прямой ссылке а либо с внешней либо внутренней страницы
В качестве действия ставим запрет на доступ, проверить http://breys.ru/blog/id/107
Кстати, запрет на просмотр можно заменить перебросом на сайт Firefox или сайт заражённый вирусами, вот так
RewriteCond %{HTTP_REFERER} ^$
RewriteRule .* http://getfirefox.com/ [R]
Подобный приём не даст им просмотреть страницу и сделать бессмысленные запросы к базе
И теперь мне закралась мысль, а на сколько уменьшиться мнимамя популярность MSIE если отсечь всех идиотов спамяших сайты
А вот месячная статистика с другого моего домена:
ffsdmad@ffsdmad:~/rekoweb.ru/logs$ ls |sort|tail -30 |xargs bzcat | awk -F '"' '{print $6}'| sort | uniq -c|sort -n| tail -20
817 Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)
832 Opera/9.52 (Windows NT 5.1; U; ru)
887 Opera/9.62 (Windows NT 5.1; U; ru) Presto/2.1.1
902 Opera/9.27 (Windows NT 5.1; U; ru)
940 Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)
999 Mozilla/5.0 (Twiceler-0.9 http://www.cuil.com/twiceler/robot.html)
1011 Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.0.6) Gecko/2009020407 Iceweasel/3.0.6 (Debian-3.0.6-1)
1037 Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 MRA 5.4 (build 02614) Firefox/3.0.7
1817 Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.0.6) Gecko/2009020911 Ubuntu/8.04 (hardy) Firefox/3.0.6
1889 Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)
2520 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
2604 Opera/9.63 (Windows NT 5.1; U; ru) Presto/2.1.1
2722 YandexBlog/0.99.101 (compatible; DOS3.30; Mozilla/5.0; B; robot) 0 readers
3757 Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7
4330 Mail.Ru/1.0
5173 Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
8264 Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.6) Gecko/2009011913 Firefox/3.0.6
25725 StackRambler/2.0 (MSIE incompatible)
29043 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
50921 Yandex/1.01.001 (compatible; Win16; I)
А вот доказательства, что пользователи этого браузера спамят мой сайт:
ffsdmad@ffsdmad:~/rekoweb.ru/logs$ bzgrep '(compatible; MSIE 6.0; Windows NT 5.1)' rekoweb.ru.200*| awk '{print $7}'|sort |uniq -c|sort -n|tail
73 /html/kurs
87 /images/img1.png
98 /mag/ffjs.js
125 /js.js
137 /style/rekoweb2008.css
6999 /blog/id/151
7079 /blog/id/163
7205 /blog/id/158
7322 /blog/id/131
Другие примеры испольщования mod_rewrite
Исправление битых ссылок с помощью mod_rewrite
Пример использования mod_rewrite