Сегодня CloudFlare неожиданно подложил сюрприз. Следуя рекомендациям, на многих проектах я блокировал входящие соединения к веб-серверу, разрешая запросы только с адресов CloudFlare. Благо у них есть запись об этом и они предоставляют списки своих IPv4 и IPv6 адресов.
С одной стороны, очевидно, что запрашивать раз в N-часов диапазоны адресов и жестко прописывать их в фаерволе - это некий костыль. Лучше бы это было API с обратной связью, но… всё-таки мы говорим о бесплатном сервисе.
Но сегодня случилось сразу две ужасных вещи.
Мало того, что URL без слеша в конце начал возвращать Moved Permanently на адрес со слешем:
1soar@localhost $ curl -v "https://www.cloudflare.com/ips-v4"
2< HTTP/1.1 301 Moved Permanently
3< Location: https://www.cloudflare.com/ips-v4/
Так вдобавок к этому, “текстовый” список адресов стал совсем не текстовым:
1soar@localhost $ curl "https://www.cloudflare.com/ips-v4/"
2<pre style="word-wrap: break-word; white-space: pre-wrap;">103.21.244.0/22
3103.22.200.0/22
4103.31.4.0/22
5104.16.0.0/12
6108.162.192.0/18
7131.0.72.0/22
8141.101.64.0/18
9162.158.0.0/15
10172.64.0.0/13
11173.245.48.0/20
12188.114.96.0/20
13190.93.240.0/20
14197.234.240.0/22
15198.41.128.0/17
16199.27.128.0/21
17</pre>
И если первое изменение я могу объяснить какой-либо унификацией адресов, то зачем в текстовом виде вдруг появился HTML-тег, мешающий простому разбора файла - мне категорически непонятно.
PS: И всё равно они молодцы! Один из самых качественных бесплатных сервисов, которым я пользуюсь не один год и всем советую. Спасибо, ребята!
PPS: Спустя сутки тег пропал и файл снова стал текстовым.