Как я могу заблокировать все IP-адреса CloudFlare в стек переполнения

У меня проблема с некоторыми прокси-сайтами, которые используют cloudflare, и они скрывают и спамят мой сайт.

Как я могу заблокировать все IP-адреса cloudflare в php, чтобы блокировать сайты, очищающие мой сайт … или есть какое-нибудь лучшее решение?
Мой сайт также использует cloudflare.

0

Решение

к счастью, cloudflare предоставляет список их диапазонов IP Вот, так что просто проверьте, находится ли подключающийся IP в пределах 1 из этих диапазонов, и выйдите (), если это так.

Пример реализации с использованием M6Web / Firewall:

use M6Web\Component\Firewall\Firewall;

if(!((new Firewall())->setDefaultState(true)->addList(file('blacklist.txt',FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES),'localBad')->setIpAddress($_SERVER['REMOTE_ADDR'])->handle())){
http_response_code(403);
exit();
}

с сопровождающим ежедневным cronjob:

<?php
$ips = file_get_contents ( 'https://www.cloudflare.com/ips-v4' ) . "\n" . file_get_contents ( 'https://www.cloudflare.com/ips-v6' );
file_put_contents ( '/path/to/blacklist.txt', $ips );
  • обратите внимание, что было бы сложно реализовать диапазоны ipv6 cidr вручную, поэтому вам, вероятно, следует использовать стороннюю библиотеку, такую ​​как брандмауэр M6Web. Кроме того, было бы гораздо эффективнее делать это с iptables, чем на уровне php.

  • cronjob на самом деле не требуется, вы можете получать новый список ips с каждой загрузкой страницы, но это, вероятно, будет очень медленным, и, возможно, по иронии судьбы, вы можете получить автоматическую блокировку ip от cloudflare.com за спам, таким образом я настоятельно рекомендую вам использовать ежедневный cronjob.

1

Другие решения

Как я могу заблокировать все ip’s cloudflare

Мой сайт также использует cloudflare

Вы не можете — иначе вы не сможете использовать cloudflare самостоятельно.

Лучшим решением было бы сделать так, чтобы ваш веб-сервер (например, apache или nginx) проверял заголовок хоста (который пользователь видит в адресной строке), и если это что-то отличное от вашего обычного домена, только 301 редирект (постоянный) — это будет сообщить поисковым системам, что контент «переместился» с сайта слома на законный сайт

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector