- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
видимо хорошо вы инфу на сайте собрали, раз люди так стараются.
все же очень хотелось накормить бы его леваком)
У меня на сайте в базе более 5000 страниц с информацией об изделиях.
Еще и боты официальные всякие лезут (не вредоносные которые) и много запрашивают страниц, но от них я избавился:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^.*(Custom-AsyncHttpClient|ZoominfoBot|SurdotlyBot|AwarioBot|Go-http-client|ias_crawler|IABot|Amazonbot|AmazonAdBot|HeadlessChrome|GPTBot|ChatGLM-Spider|MJ12bot|OAI-SearchBot|SeznamBot|CriteoBot|ias-ie|ias-jp|ias-or|ias-va|AhrefsBot|BLEXBot|SemrushBot|DotBot).*$ [NC]
RewriteRule .* - [F,L]
Еще и вот этих в брандмауэре пришлось забанить сразу диапазонами, ибо тоже с них лезли и качали чуть ли не весь сайт, создавая нагрузку на процессор:
34.*.*.* - Google Cloud
35.*.*.* - Google Cloud
132.145.*.* - Oracle Public Cloud
140.238.*.* - Oracle Public Cloud
152.67.*.* - Oracle Public Cloud
47.128.*.* - Amazon Data Services Singapore
47.129.*.* - Amazon Data Services Singapore
47.130.*.* - Amazon Data Services Singapore
47.131.*.* - Amazon Data Services Singapore
47.235.*.* - Alibaba Cloud
47.236.*.* - Alibaba Cloud
47.237.*.* - Alibaba Cloud
47.238.*.* - Alibaba Cloud
47.239.*.* - Alibaba Cloud
47.240.*.* - Alibaba Cloud
47.241.*.* - Alibaba Cloud
47.242.*.* - Alibaba Cloud
47.243.*.* - Alibaba Cloud
47.244.*.* - Alibaba Cloud
47.245.*.* - Alibaba Cloud
47.246.*.* - Alibaba Cloud
Вы не сказали прямые ли это заходы, по логу сервера посмотрите.
Как бы сделал я:
1. установить клауд.
2. Написать WAF правила, которые блочат ASN сети - разными сервисами можно узнать, тем же клаудом пропустить через него и посмотреть кто ходит (логи клауда, ASN страна протокол, страница и тд).
3. Блокировка тех стран, откуда нет тарфика ну или обязательную капчу.
4. Сделать допустим вообще капчу на прямые заходы (если это прямой заход), исключив поисковики. Если прямой и HTTP 1 или 1.1 - то совместить. Чем больше данных для анализа, тем легче составить правило защиты.
А так да, есть помимо клауда - капча гугла и вообще много чего другого.
Вот такое коротенькое решение реализовал, если кому интересно:
global $post;
$IP = $_SERVER['REMOTE_ADDR'];
if (isset($_SERVER['HTTP_CLIENT_IP'])) {
$IP = $_SERVER['HTTP_CLIENT_IP'];
}
elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$IP = $_SERVER['HTTP_X_FORWARDED_FOR'];
};
$IP = preg_replace('/[^0-9a-zA-Z\.\:]/', '', $IP);
// инициализируем массив запросов
$requests = array();
// загружаем лог для IP в массив
$file_name = '/xxx/logs/IP/'.$IP.'.log';
$file_name_blocked = '/xxx/logs/IP/'.$IP.'.blocked';
if (@file_exists($file_name_blocked)) {
header("Location: /403.php");
die();
};
$result = @file_get_contents($file_name);
if ($result != FALSE) {
$lines = explode(PHP_EOL, $result);
$i = 0;
while ($i < (count($lines)-1)) {
$requests[] = array(
'date' => str_ireplace('DATE: ', '', $lines[$i]),
'URL' => str_ireplace('URL: ', '', $lines[$i+1]),
'postID' => str_ireplace('ID: ', '', $lines[$i+2]),
);
$i = $i+3;
};
};
// добавляем в массив новый запрос
$requests[] = array(
'date' => date('Y-m-d H:i:s'),
'URL' => $_SERVER['REQUEST_URI'],
'postID' => $post->ID,
);
// записываем массив в лог
$file = @fopen($file_name, 'w');
if ($file != FALSE) {
foreach($requests as $r)
@fwrite($file, 'DATE: '.$r['date'].PHP_EOL.'URL: '.$r['URL'].PHP_EOL.'ID: '.$r['postID'].PHP_EOL);
@fclose($file);
};
// Анализируем и блокируем
// Правило 1: обращение к advanced-search (ID=84889) три раза подряд с интервалом менее 5 секунд
for($i=0;$i<count($requests);$i++) {
$found = FALSE;
if ($i >= 2) {
if ($requests[$i-2]['postID'] == 84889 && $requests[$i-1]['postID'] == 84889 && $requests[$i]['postID'] == 84889)
$found = TRUE;
};
if ($found) {
$time1 = $requests[$i-2]['date'];
$time2 = $requests[$i-1]['date'];
$time3 = $requests[$i]['date'];
$diff_21 = strtotime($time2) - strtotime($time1);
$diff_32 = strtotime($time3) - strtotime($time2);
if ($diff_21 < 5 && $diff_32 < 5)
@rename($file_name, $file_name_blocked);
};
};
Вот такое коротенькое решение реализовал, если кому интересно:
Вот ещё идея: https://searchengines.guru/ru/forum/1082826/page2#comment_16932086