В папке плагинов WordPress лежит замечательный файл index.php
“Молчание – золото”…
Это как раз для любителей вызвать папку “/wp-content/plugins/” напрямую.
В скриптах WordPress проверяется служебная переменная ABSPATH перед запуском
if (!defined ('ABSPATH')) exit;
При попытке выполнить скрипт вне пространства WP – на выход
А как быть с самодельным скриптом ,который запускается с Вашего сайта, но не из WP?
Для начала очевидное:
- Сделаем свой index.php
- Будем показывать его любопытным при прямом запуске
Вариант файла index.php
<?php header($_SERVER['SERVER_PROTOCOL']." 404 Not Found"); echo 'Silence is golden'; exit; ?>
при показе файла дополнительно сообщаем боту, что ошибка 404 “файл не найден” – для разнообразия
Т.к Ваш скрипт запускается с какой-либо страницы Вашего сайта – то там должен быть рефер с именем этой страницы. При прямом запуске – рефер будет пустой.
$backurl = $_SERVER['HTTP_REFERER']; if (empty ($backurl)) { include 'index.php'; exit; }
Но это еще не все. Боты научились подделывать рефер (что бы их так просто не выгоняли), там может быть:
- или Ваш домен mysite.ru с ошибкой вида www.mysite.ru
- или URL адрес Вашего скрипта вида http://mysite.ru/test.php
С последним вариантом бот бился 6 часов с интервалом 1 сек… Подбирая разные варианты запуска php.
Атака шла с IP v6 – так что версия fail2ban 0.9 ничего тут не смогла сделать (поддержка IP6 только с версии 10.0).
Добавим дополнительные проверки
$backurl = $_SERVER['HTTP_REFERER']; $domen_link = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $domen; //---------- if (empty ($backurl)) { include 'index.php'; exit; } if (mb_strpos($backurl, $domen_link)=== FALSE) { include 'index.php'; exit; } if (mb_strpos($backurl, '.php') > 0) { include 'index.php'; // exit; }
где $domen_link – домен Вашего сайта с протоколом и поищем:
- или отсутствие правильного домена в строке рефера (откуда был вызван скрипт)
- или символы ‘.php’ в рефере
Если хотя бы одна из трех ловушек сработает – бот получит страницу index.php и 404 ошибку.
Бинго!
ВАЖНО: “символы ‘.php’ в рефере” !
Иногда вредные боты подменяют рефер и там вписывают название Вашего скрипта вида https://mysite.ru/script.php
А у Вас например, скрипт script.php после выполнения перезагружает страницу, откуда он был запущен https://mysite.ru
А там теперь, в рефере (бот подделал) – название Вашего же скрипта. Что произойдет? После захода такого бота сервер уйдет в цикличный вызов скрипта и ему будет нехорошо…
P.S.
Если разработчики ботов еще что придумают – допишем ловушки :)
Последние публикации
Что выбрать HDD или SSD у хостера?

Публикация 2 месяца назад
Простой вопрос HDD vs SSD Казалось бы - что тут выбирать? Каждый, кто менял в своей Windows 7 на старом ПК диск HDD на SSD = радовался увеличению быстродействия системы. SSD - быстрее: нет механических систем да и электроны быстрее по микросхемам бегают Но у хостера - не домашний ПК, там сервер. И диски не по отдельности, а соединены в RAID-массив. Некоторые хостеры предлагаю очень простой выбор У некоторых выбор посложнее: SAS или...
(Читать полностью...)
Как заработать на рекламе на информационном сайте

Публикация 2 месяца назад
Собственно никак :) Есть сервисы Яндекс РСЯ и Google Adsense. Посмотрим внимательно: Яндекс принимает в свою сеть сайты с 10 000 визитов день (Россия) Google принимает всех Цифры по Google Adsense - в среднем с сайта 500 визитов в день (15 000 в месяц) Вы получите порядка 50 долл. Чтобы хотя бы получить 500 долл. за месяц - у Вас должен быть сайт с уровнем визитов 150 000 в месяц. Или, например, 300 000 визитов в месяц - как хочет Яндекс (10 000 * 30 дн). Что для информационного сайта силами одного вебмастера малореально. И не забываем, что у многих...
(Читать полностью...)
Роботы и боты не спят…

Публикация 4 месяца назад
Пока Вы думаете, как завлечь посетителей на сайт - боты там резвятся от души. одни боты ломятся в админку (для сайта на WordPress). Их там правда не ждут - но ботам всё равно. Любимые файлы WP для подборщиков: wp-login.php xmlrpc.php (для мобильного входа) Другие боты пытаются в форму обратной связи запихнуть исполняемый код или ссылку на рекламный сайт. Вот это "empty message" - уже после очистки от спецсимволов. И какое упорство для 195.123.227.217 - с одного IP-адреса пытаться сделать инъекцию кода в поле формы. И хорошо...
(Читать полностью...)
Протокол http против https

Публикация 4 месяца назад
Казалось бы, что тут может быть нового? Используйте https и будет Вас счастье. Но чудеса встречаются на разных серверах... Допустим у Вас есть проект в работе, он пока работает на http, сайт уже есть. И он открывается нормально по http. Совершенно случайно Вы узнаете, что сайт открывается еще и по https, но: там висит заглушка вместо сайта никаких действий по подключению https Вы не предпринимали сертификата SSL у Вас нет А откуда Вы это случайно узнали? А это поисковые роботы проверили https, выяснили, что сервер отвечает на запрос (с кодом 302 - временно перемещено), страница с html тэгами там есть = и сделали страницу-пустышку https...
(Читать полностью...)
Как выбрать VPS/VDS по параметрам

Публикация 4 месяца назад
Будем выбирать VPS/VDS по параметрам. VPS - virtual private server VDS - virtual dedicated server Другими словами - виртуальный компьютер у хостера, где Вы можете разместить свой web-проект. Компьютер как настоящий (cpu, память, диск, ОС) - только нарисованный в памяти сервера. Про варианты работы VDS читаем статью Хостинг VPS Основные параметры: система виртуализации (OpenVZ, KVM, Hyper-V) операционная система (Linux, Windows) число ядер процессора диск (SAS, SSD, NVMe) оперативная память RAM трафик и ширина канала И собственно web-проект можно разделить на три категории: информационный сайт с малой посещаемостью информационный сайт с...
(Читать полностью...)
Вариант перелинковки страниц и статей блога на WordPress

Публикация 8 месяцев назад
Это волшебное слово "перелинковка". Помимо наличия ссылок с наиболее популярных страниц (установленных вручную) - неплохо бы добавить автоматический вариант: на странице после контента должен быть список дочерних страниц (или страниц похожей тематики) - повышает вероятность перехода посетителя в статье после контента должен быть список статей этого же автора по этой же рубрике - повышает вероятность перехода посетителя на каждой странице блога должен быть список наиболее популярных страниц (линк и счетчик) на каждой странице блога должен быть список наиболее популярных статей (линк и счетчик) Как это можно реализовать? Можно для WordPress...
(Читать полностью...)
Основные параметры сайта

Публикация 8 месяцев назад
У Вас/Вашей компании есть сайт. Наивно думать, что теперь о Вас узнает весь мир. Да, сайт видно с любой точки земного шара - но у Вас сайт-невидимка, никто про него чего не знает и найти не может. По сравнению с началом Интернета сайтов стало очень много, точнее ОЧЕНЬ МНОГО. Раньше было достаточно выложить сайт в интернет -и через некоторое разумное время его уже хорошо видно в поиске, пошли посетители. Сейчас для продвижения сайта необходимы достаточно большие усилия целой команды. В одиночку это практически сделать невозможно - слишком разные знания нужны и банально не хватит времени. И очень много работает хороших команд с хорошими бюджетами. Грубая оценка того, что...
(Читать полностью...)