Birch AquariumBirch Aquarium // 2018-04-08

Боти та 404 помилки

Веб-сайти постійно скануються ботами. Це може бути пошукові системи (Google, Bing), спеціалізовані сервіси (Wayback Machine, Semrush), маловідомі але наполеглеві (AhrefsBot, MJ12bot) або щось незрозуміле (Mozilla/5.0). Усі вони намагаються зібрати якусь інформацію з сайту.

Мені в прицнипі байдуже, коли вони відвідують існуючі сторінки сайту. Тому я рідко заглядаю в access.log, хіба хтось намагається підібрати пароль до адмінки і це впливає на швидкодію сервера.

А от вміст error.log мені цікавіший, особливо після запуску нового сайту — чи не забув я перенести якісь важливі сторінки чи файли. Після перезапуску цього сайту минулого місяця я за ним спостерігав і вирішив скласти список типових 404 помилок. Деякі з них стосуються лише WordPress але подібні запити трапляються на усіх сайтах.

Старі дописи та сторінки
Я час від часу видаляю старі дописи з блоґу, що втратили актуальність або мали б бути у Твіттері, якби він існув 15 років тому. Пошукові системи не можуть так просто їх забути і тому ще багато років відвідують старі посилання. Нічого з цим вдіяти не можна, хіба відповідати HTTP 410 (більше не існує) замість 404 (не знайдено) щоб посилання швидше зникло з пошукового індексу.

Старі статичні файли
За багато років існування сайту я не раз змінював місцеположення CSS, JS, зображень та інших подібних статичних файлів. Також деякі зображення були вбудовані в інші сайти і у мене немає над цим контролю.
Деякі картинки можна переадресувати, якщо це має сенс, на решту можна не зважати.

WordPress плагіни
Існує ціла індустрія пошуку «дірок» на сайтах, що працюють на WordPress. Тому в логах буде дуже багато таких запитів:
/wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php
/wp-content/plugins/fluid_forms/file-upload/server/php/
/wp-content/plugins/viral-optins/api/uploader/file-uploader.php

Можна спробувати заборонити доступ до папки /wp-content/plugins/ з Вебу але це ймовірно поламає роботу деяких плагінів. Тому найпростіше просто тримати увесь софт на сайті в актуальному стані та видаляти непотрібні плагіни.

WordPress сторінки
Деякі боти намагаються знайти приховані дописи на сайті, використовуючи авторські архіви WordPress.
Це виглядає як купа запитів з номерами від 1 до 10-20.
/?author=1
/?author=2
/?author=3

Якщо немає чого приховувати, то можна не зважати або просто переадресувати на головну.

Конфіги
Є файли, вміст яких може бути цікавим:
.env
.htaccess
.git/config
wp-config.php

Очевидно, що wp-config.php буде інтепретований PHP і паролі до бази дістати не вийде, тому боти намагаються обійти це за допомогою таких запитів:
wp-config.bak
wp-config.php.save

або використати вразливість деяких плагінів та тем:
/wp-content/plugins/recent-backups/download-file.php?file_link=../../../wp-config.php
/wp-content/plugins/aspose-doc-exporter/exporter_download.php?file=../../../wp-config.php
/wp-content/plugins/site-import/admin/page.php?url=..%2F..%2F..%2F..%2Fwp-config.php
/wp-content/themes/churchope/lib/downloadlink.php?file=../../../../wp-config.php

Не варто дозволяти прямий доступ до конфігів, також актуальність софту не завадить.

Бекапи
Боти перебирають цілу купу можливих імен файлів та розширень, намагаючись знайти архіви, що залишили ліниві сисадміни:
public_html.zip / .7z / .tar.gz / .tgz / .tar.bz2
site.zip / .7z / .tar.gz / .tgz / .tar.bz2
db.zip / .7z / .tar.gz / .tgz / .tar.bz2

Протидія цьому думаю очевидна.

Різне
Колись давно потрібно було підтримувати старі версії ІЕ на одному з моїх сайтів, тому я знайшов якийсь JS файл, що примушував ІЕ поводитися пристойно. Я поклав його в папку /fuck-ie/ щоб виразити своє ставлення до цього неподобства. Час від часу я помічав запити до адрес, що містили /****-ie/, тобто якийсь браузер чи софт на компʼютері користувача намагався цензурувати вміст сайту.