Коллеги, сталкивался ли кто-нибудь с похожим поведением защиты Хабра при чтении RSS?
Вплоть до начала этой недели, всё работало нормально.
Использую официальный RSS:
https://habr.com/ru/rss/articles/?limit=100
Запрос выполняется обычным HTTP-клиентом на Go со следующими заголовками:
User-Agent: BlogWatcher/1.0 (+
https://github.com/Hyaxia/blogwatcher)
Accept: application/rss+xml, application/atom+xml, application/xml;q=0.9,
text/xml;q=0.8, */*;q=0.1
Наблюдаемое поведение:
1. С нового внешнего IP обычный curl к RSS Хабра работает и возвращает XML.
2. RSS-ридер выполняет один запрос к /ru/rss/articles/?limit=100.
3. После этого Хабр полностью перестаёт принимать соединения с данного IP.
4. Даже обычный curl больше не доходит до TLS:
Trying 178.248.237.68:443...
Failed to connect to habr.com port 443: Timeout was reached
HTTP status: 000
5. Бан держится как минимум 12 часов.
Не устанавливается даже TCP-соединение.
На чистом узле запрос был выполнен только один раз, без повторов. Поведение удалось воспроизвести на двух независимых узлах с разными публичными IP.
До запуска ридера, например, такой запрос работал:
curl
https://habr.com/ru/rss/hubs/css/articles/all/
После запроса ридера перестают работать и этот RSS, и сам сайт с того же IP.
Что я делаю не так?
Есть ли сейчас специальные требования к User-Agent RSS-клиентов?
Может ли защита реагировать на TLS fingerprint стандартного Go HTTP-клиента?
Какой интервал обновления RSS считается допустимым?