Magefan захищає ваш магазин від будь-якого бот-трафіку, пошукового спаму, DDoS-атак та підозрілих запитів до сервера, щоб заощадити ресурси сервера та покращити взаємодію з користувачами.
Він поєднує в собі кілька функцій, таких як автоматичне обмеження швидкості, додавання IP-адрес до білого/чорного списку, блокування агентів користувача, блокування країн, обмеження сторінок ботів, перевірка reCAPTCHA та детальні звіти про трафік, щоб допомогти вам блокувати бот-трафік.
У цьому посібнику ви дізнаєтеся, як налаштувати кожну функцію захисту від ботів цього модуль, увімкнути перевірку CAPTCHA та отримувати сповіщення щоразу, коли ваш магазин зазнає атаки ботів.
Встановлення та оновлення
Перейдіть до свого облікового запису Magefan та Посібник з керування модулі Magefan , щоб дізнатися, як встановити Bot Blocker для Magento 2 .
Загальні налаштування
Перейдіть до Магазини > Конфігурація > Модулі Magefan > Блокувальник ботів , щоб налаштувати модуль.
Примітка: більшість опцій , наприклад, боти, запити та URL-адреси, вже заблоковані відповідно до найкращих практик, тому після ввімкнення модуль воно автоматично почне захищати ваш магазин. Змініть налаштування нижче, щоб блокувати/дозволяти певні IP-адреси, агенти користувачів, сторінки, пошукові терміни та налаштовувати CAPTCHA.
Модуль має деякі загальні налаштування, які застосовуються до всього модуль.
- Увімкнути блокувальник ботів — вмикає або вимикає модуль .
- Точка ініціалізації — підтвердження лише для читання про те, що перехоплювач раннього завантаження розширення було додано до pub/index.php. Це гарантує, що правила блокування запускатимуться до того, як Magento почне обробляти запит.
- Заголовок довіреної IP-адреси проксі — повідомляє блокувальнику ботів, яким проміжним серверам (наприклад, NGINX, Cloudflare або CDN) дозволено повідомляти справжню IP-адресу клієнта в HTTP-заголовках. Ви можете ввести кілька заголовків, розділених комами, наприклад, HTTP_CF_CONNECTING_IP,HTTP_X_REAL_IP.
Залиште поле порожнім, щоб покладатися лише на REMOTE_ADDR , що рекомендується, якщо ваш магазин не знаходиться за проксі-сервером або CDN. Якщо так, встановіть для цього значення ключ $_SERVER , який ваша інфраструктура використовує для передачі справжньої IP-адреси відвідувача.
наприклад HTTP_CF_CONNECTING_IP для Cloudflare або HTTP_X_REAL_IP для ngx_http_realip_module від Nginx.
Примітка: налаштуйте цей параметр ретельно, якщо ви використовуєте CDN або балансувальник навантаження, оскільки якщо ви встановите його неправильно, кожен відвідувач, здається, використовує IP-адресу проксі, що може спричинити хибнопозитивні блокування обмеження швидкості.
- Електронна адреса для сповіщень та відправник електронної пошти — визначте список адрес, які отримують сповіщення DDoS та автоматичні сповіщення reCAPTCHA, а також відправника цих сповіщень відповідно.
Якщо залишити поле порожнім, для електронної пошти для сповіщень використовується контактна електронна адреса General .
![]()
Захист від DDoS
Налаштування розділу DDoS дозволяють автоматично блокувати IP-адреси, які надсилають забагато запитів за заданий короткий проміжок часу.
- Дія при досягненні ліміту — визначає, що відбувається, коли певна IP-адреса перевищує певну кількість запитів:
- Надіслати сповіщення електронною поштою (з можливістю блокування електронною поштою) — ви отримуєте сповіщення про шкідливу IP-адресу та вирішуєте, чи блокувати її електронною поштою.
- Блокувати негайно — IP-адреса блокується негайно.
- Блокувати негайно та повідомляти електронною поштою — IP-адреса блокується негайно, і ви отримуєте сповіщення про це електронною поштою.
- Вимагати reCAPTCHA — вимагає перевірки CAPTCHA.
Примітка: якщо ви оберете Для параметра Вимагати reCAPTCHA також необхідно налаштувати розділ reCAPTCHA Keys нижче.
- Max Requests per IP — визначає кількість запитів, які одна IP-адреса може надіслати протягом вікна моніторингу , перш ніж буде запущено налаштовану дію (вище).
- Subnet Block Threshold (× IP Limit) — визначає, у скільки разів вищий комбінований ліміт запитів для всієї підмережі /24 порівняно з однією IP-адресою. Це виявляє розподілені атаки, які поширюють запити на кілька IP-адрес.
Наприклад, з лімітом IP 100 та множником 3, вся підмережа блокується, коли загальна кількість запитів досягає 300.
- Monitoring Window (seconds) — визначає часове вікно, яке використовується для підрахунку запитів. Мінімальне дозволене значення становить 300 секунд, що дорівнює 5 хвилинам.
- Тривалість блокування (секунди) — вказує, як довго тимчасове блокування залишається активним, коли певна IP-адреса перевищує ліміт максимальної кількості запитів. Значення за замовчуванням — 3600 секунд, що дорівнює 1 годині.
- Зберігання журналу запитів (дні) — визначає час зберігання даних журналу запитів у моніторі трафіку, перш ніж cron автоматично видаляє старіші записи.
![]()
Списки доступу
Цей розділ дозволяє контролювати, які IP-адреси та агенти користувачів блокувати або дозволяти.
IP-адреси в чорному/білому списку
- Дозволені IP-адреси — визначає IP-адреси або діапазони CIDR, які ніколи не блокуються у вашому магазині. Використовуйте це для довірених партнерів, внутрішніх інструментів або віддалених офісів.
- Заблоковані IP-адреси — визначає IP-адреси або діапазони CIDR, яким назавжди заблоковано доступ до вашого магазину.
наприклад, однакові формати працюють для обох полів 192.168.1.30 або 192.168.1.0/24.
![]()
Блокування/дозвіл користувацьких агентів
- Дозволені користувацькі агенти — визначає користувацькі агенти, які обходять усі правила блокування ботів, включаючи захист від DDoS та обмеження URL-адрес (налаштовано нижче).
Примітка: Блокувальник ботів Magefan за замовчуванням додає до білого списку Googlebot, Bingbot та DuckDuckBot, щоб ваш SEO не постраждав.
- Заблоковані користувацькі агенти — визначає користувацькі агенти, які завжди мають бути заблоковані.
![]()
Обидва налаштування підтримують регулярні вирази та точні рядки.
наприклад, /.*Googlebot.*/ відповідає будь-якому користувацькому агенту, що містить "Googlebot", тоді як MyBot/1.0 відповідає лише цьому точному рядку.
/.*spider.*/ відповідає будь-якому користувацькому агенту, що містить "spider", тоді як python-requests/2.31.0 відповідає лише цьому точному рядку. Використовуйте /python-requests\/.*/ для блокування всіх версій.
Блокування за країною
Тут ви можете обмежити доступ до магазину з цілих країн за допомогою визначення географічної IP-адреси.
Модуль постачається з двома базами даних географічних IP-адрес для забезпечення належного відстеження та симулятором місцезнаходження, який дозволяє протестувати блокування без VPN.
- Увімкнути блокування за країною — вмикає або вимикає геоблокування.
- Заблоковані країни — вибирає країни, відвідувачам яких слід заблокувати доступ до вашого магазину.
![]()
Обмеження сторінок ботів
Цей розділ дозволяє блокувати непотрібну генерацію URL-адрес (наприклад, відфільтрованих URL-адрес категорій або пошуку) певними ботами, які намагаються запитувати певні сторінки, незалежно від захисту від DDoS-атак.
Модуль повертає відповідь 410 Gone для вказаних ботів і забезпечує повний доступ до вашого магазину для реальних відвідувачів і довірених сканерів.
Агенти користувача ботів
Це визначає шаблони регулярних виразів, які слід розглядати як боти для обмежень сторінок.
Цей список незалежний від глобального списку Дозволені користувацькі агенти (розділ «Список доступу»), оскільки дозволеному агенту користувача все ще може бути обмежений доступ до цих конкретних сторінок.
наприклад /.*bot.*/i, /.*crawler.*/i, /.*spider.*/i, /.*slurp.*/i.
Шаблони URL-адрес з обмеженим доступом
Це визначає шаблони регулярних виразів або звичайного тексту, що збігаються з REQUEST_URL. Збігаючі боти отримають відповідь 410 Gone під час спроби доступу до цих URL-адрес.
наприклад
|[?&]p=\d|
|[?&]product_list_dir=|
|[?&]product_list_order=|
|/catalogsearch/|
|/checkout/|
|/search/|
|/customer/|
![]()
Блокувальник поганих запитів
Ці налаштування виявляють та блокують запити, що відповідають відомим шаблонам експлойтів та сканерів, перш ніж вони потраплять до Magento.
Після того, як ви увімкнете блокувальник поганих запитів, він перевіряє шаблони заборонених тіл лише на тіла запитів POST та PUT, а шаблони заборонених URL-адрес – на URL-адресу запиту для всіх методів HTTP.
- Сповіщення електронною поштою — якщо встановлено значення «Так», щогодини надсилає звіт електронною поштою щоразу, коли блокуються нові погані запити (не більше одного сповіщення на годину).
- Сповіщення Шаблон електронної пошти — визначає шаблон електронної пошти для заблокованих поганих запитів, що надсилається модуль.
Шаблони заборонених тіл
Тут ви визначаєте шаблони, які перевіряються на тіла POST/PUT. Звичайний текст зіставляється як підрядок без урахування регістру. Оберніть шаблон у роздільники /, щоб використовувати його як регулярний вираз, наприклад /eval\s*\(/i.
Список за замовчуванням вже блокує поширені виклики впровадження шаблонів, небезпечні функції PHP ( eval, exec, shell_exec, phpinfo тощо), команди оболонки, такі як wget/rm -rf , вбудовані впровадження <script> та корисні навантаження base64/atob .
Заборонені шаблони URL-адрес
Тут ви визначаєте шаблони, що перевіряються за URL-адресою запиту для кожного методу HTTP, використовуючи ті самі правила підрядка/регулярного виразу.
Шаблон за замовчуванням блокує поширені цілі сканування, такі як .env, .git , .htaccess , /wp-admin , /wp-login , xmlrpc.php , phpinfo та XDEBUG_SESSION .
Примітка: Колонка Звіт в обох розділах контролює, чи будуть збіги за заданим шаблоном включені до щогодинного дайджесту електронної пошти. Встановіть значення Ні , щоб продовжувати блокувати цей шаблон безшумно.
![]()
Фільтр пошуку
Цей розділ запобігає використанню ботів пошуку та створенню тисяч спам-сторінок результатів пошуку. Налаштування за замовчуванням вже блокують найпоширеніші пошукові запити, згенеровані ботами.
- Ключові слова — визначає пошукові запити, які блокуються. Додайте будь-які ключові слова, які ви бачите, що повторно потрапляють у ваші шляхи /catalogsearch/ у Монітор трафіку .
, наприклад, union select, union all select, group_concat, concat(, benchmark(, updatexml(
![]()
reCAPTCHA
Блокувальник ботів Magefan дозволяє вмикати перевірки CAPTCHA для підозрілих ботів з кроком перевірки, замість того, щоб миттєво блокувати їх.
Ключі
У цьому розділі ви налаштовуєте бажаний метод CAPTCHA. Це потрібно, якщо ви хочете вимагати reCAPTCHA як дію захисту від DDoS або якщо ви хочете миттєво або автоматично ввімкнути режим reCAPTCHA для всього сайту.
- Постачальник CAPTCHA — виберіть між Google reCAPTCHA v2 (прапорець «Я не робот») або Cloudflare Turnstile (альтернатива, що забезпечує конфіденційність).
- Ключ сайту та секретний ключ — налаштування, що використовуються для авторизації за допомогою відповідного режиму CAPTCHA у вашому магазині. Ви генеруєте їх під час реєстрації сервісів Google reCAPTCHA або Cloudflare.
Примітка: Google reCAPTCHA, зареєструйте прапорець reCAPTCHA v2 у консолі адміністратора Google reCAPTCHA . Для Cloudflare Turnstile згенеруйте ключі зі своєї панелі інструментів Cloudflare .
- Пароль підтвердження — автоматично генерується під час першого збереження конфігурації. За потреби ви можете змінити його власним значенням.
![]()
reCAPTCHA для всього сайту
У цьому розділі ви визначаєте, чи хочете ви використовувати reCAPTCHA для всього веб-сайту та як його використовувати.
- Режим — контролює, коли Перевірка CAPTCHA увімкнена на всьому вашому веб-сайті:
- Вимкнено — CAPTCHA завжди вимкнена.
- Завжди увімкнено — кожен відвідувач бачить перевірку.
- Автоматично (увімкнути при високому навантаженні) — перевірка CAPTCHA активується автоматично, коли використання процесора або кількість запитів перевищує налаштовані порогові значення (описано нижче), а потім знову деактивується, коли трафік повертається до норми.
Примітка: обидва Завжди увімкнено та Автоматичні режими вимагають налаштування параметрів у розділі Ключі вище.
- Сповіщення електронною поштою — визначає, коли ви отримуватимете сповіщення про CAPTCHA, якщо ви використовуєте режим Автоматичні режими : коли reCAPTCHA має значення Обидва (увімкнено та вимкнено) , Тільки коли увімкнено або ніколи ( Не надсилати ).
- Повідомляти після — надсилає електронний лист із повідомленням «reCAPTCHA увімкнено», лише якщо завдання залишалося безперервно активним протягом певного часу (наприклад, після 5 хвилин). Це дозволяє уникнути спаму у вхідних повідомленнях через короткочасні стрибки трафіку.
Примітка: якщо навантаження повертається до норми раніше цього порогу, ні ввімкнений, ні вимкнений електронний лист не надсилається.
- Поріг ЦП (%) — активує reCAPTCHA в режимі Автоматичні режими , коли середнє навантаження ЦП перевищує цей відсоток.
- Поріг запитів / хвилина — активує reCAPTCHA в режимі Автоматичні режими , коли загальна кількість запитів за останню хвилину перевищує це значення.
- Виключені шаблони URL-адрес — визначає, які відповідні запити завжди повинні обходити завдання CAPTCHA. Використовуйте це для кінцевих точок API та вебхуків, які не можуть розв’язати CAPTCHA, таких як зворотні виклики IPN платежів.
наприклад,/paypal/,/braintree/,/stripe/,/elavon/
![]()
Зовнішній вигляд сторінки підтвердження
Тут ви можете налаштувати сторінку, яку бачать відвідувачі, коли їх просять виконати CAPTCHA-челендж.
- Показати логотип — відображає логотип вашого магазину над заголовком на сторінці підтвердження.
- Код мови HTML — встановлює мову, що використовується на сторінці Атрибут .
- Заголовок сторінки — заголовок, що відображається на сторінці підтвердження.
- Опис сторінки — текст, що відображається під заголовком, що пояснює, чому потрібна перевірка.
- Текст кнопки — мітка на сторінці надсилання кнопка.
- Заголовок помилки — текст, що відображається вище повідомлень про помилки, якщо перевірка не вдається.
![]()
Монітор трафіку та звіти
Щойно блокувальник ботів Magefan почне блокувати ботів та шкідливі запити, ви можете переглянути, що саме потрапляє у ваш магазин, на панелі інструментів монітора трафіку. Перейдіть до Система > Блокувальник ботів > Монітор трафіку , щоб відкрити його.
Примітка: Монітор трафіку зчитує дані в реальному часі безпосередньо з файлів журналів на диску. Записи автоматично видаляються cron на основі налаштувань Зберігання журналу запитів (дні) та Тривалість блокування (секунди) , які ви налаштували раніше.
Огляд панелі інструментів
У верхній частині сторінки ви можете знайти п'ять карток зведення, які дають вам огляд трафіку вашого магазину:
- Тимчасово заблоковано — IP-адреси тимчасово заблоковано.
- Унікально IP-адреси — кількість унікальних IP-адрес, що спостерігаються у вибраному діапазоні дат діаграми.
- Загальна кількість запитів — загальна кількість запитів, зареєстрованих у вибраному діапазоні.
- Постійно заблоковані — IP-адреси, заблоковані постійно, через правило блокування (наприклад, захист від DDoS-атак) або вручну (наприклад, через панель огляду IP-адрес, списки доступу).
- Постійно дозволені — IP-адреси у вашому постійному списку дозволених адрес.
![]()
Примітка: використовуйте селектор Діапазон дат діаграми у верхньому правому куті (під картками), щоб змінити період, який відображають ці картки та діаграми нижче (наприклад, Останні 24 години, весь час, користувацький діапазон).
Діаграми
Розділ моніторингу трафіку показує розширений розділ діаграм, що охоплює різні тенденції трафіку:
- Запитів за годину — загальний обсяг запитів з можливістю вибору інтервалу (1 хв, 5 хв, 10 хв, 30 хв, 1 год), щоб ви могли виявляти піки трафіку ботів.
- Завантаження сервера за годину — середнє використання процесора за ті ж інтервали. Це дозволяє співвідносити піки трафіку з навантаженням на сервер.
- Найпопулярніші агенти користувачів — агенти користувачів, які генерують найбільше запитів.
наприклад, використовуйте цю діаграму, щоб виявити сканери (наприклад, python-requests, sqlmap, Nikto), що ховаються серед реального трафіку браузера.
- Найпопулярніші країни — країни, які надсилають найбільше запитів.
- Найпопулярніші шляхи — URL-адреси з найбільшим запитом у вашому магазині. Це допомагає визначити сторінки з незвичайним обсягом запитів.
- Найпопулярніші IP-адреси — окремі IP-адреси, які генерують найбільше запитів, з їх розташуванням.
- Найвищі /24 підмережі та Найвищі /16 підмережі — обсяг запитів, згрупований за діапазоном підмереж.
![]()
Таблиця огляду IP-адрес
Під діаграмами трафіку та запитів у моніторі трафіку Magefan є таблиця з вкладками та повною історією запитів. Вона дозволяє переглядати та вживати заходів щодо будь-якої IP-адреси, країни або агента користувача:
- Огляд IP-адрес — кожна унікальна IP-адреса, що відображається в журналах, з такими даними:
наприклад, країна, підмережа, загальна кількість запитів, остання година та середня кількість за годину, унікальні UA (агенти користувача, що використовуються цією IP-адресою), позначки часу «Перший перегляд» / «Останній перегляд», останній запитуваний шлях, останній агент користувача та поточні дані про стан (наприклад, «Звичайний»).
- Тимчасово заблоковано — IP-адреси під тимчасовим блокуванням із зазначенням тривалості блокування, що залишилася.
- Постійно заблоковано — IP-адреси, країни та агенти користувачів, постійно заблоковані вручну або за правилом з опцією Розблокувати .
- Заблоковані погані запити — запити та IP-адреси, відхилені Блокувальник поганих запитів .
- Необроблений журнал — нефільтрований журнал запитів, корисний для детального дослідження певної IP-адреси або шляху.
![]()
Примітка: використовуйте селектор Пошук за ключовим словом полем або Фільтри для пошуку певних даних (наприклад, за країною, статусом або шляхом), кнопка Стовпці для відображення або приховування стовпців, та кнопка Експорт для завантаження поточного подання для подальшого аналізу або для спільного доступу.
Дії з сіткою
Окрім перегляду даних IP-адреси в оглядовій таблиці, ви можете виконувати різні дії для певної IP-адреси, її країни або її агента користувача у стовпці Дії або виконувати ці дії для кількох IP-адрес (необроблених даних) за допомогою масових дій :
- Переглянути в журналі необроблених даних — переглянути повну історію запитів IP-адреси.
- Заблокувати IP-адресу постійно / тимчасово — додати IP-адресу до заблокованих IP-адрес або застосувати тимчасове блокування з використанням налаштованої тривалості блокування.
- Розблокувати IP-адресу / Дозволити IP-адресу — видалити існуюче блокування або додати IP-адресу до дозволених IP-адрес, щоб вона більше ніколи не блокувалася.
- Заблокувати країну постійно або тимчасово / Розблокувати країну — застосувати або видалити блокування для всієї країни IP-адреси.
- Заблокувати агента користувача Постійно або тимчасово / Розблокувати агента користувача — додати або видалити агента користувача зі списку заблокованих агентів користувача.
![]()