Задать вопрос
@domage

Почему после запроса RSS Хабр перестаёт принимать соединения с IP?

Коллеги, сталкивался ли кто-нибудь с похожим поведением защиты Хабра при чтении 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 считается допустимым?
  • Вопрос задан
  • 238 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    1C-программист: расширенный курс
    18 месяцев
    Далее
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
  • Академия Эдюсон
    Python-разработчик + ИИ
    9 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 4
Nomad_77
@Nomad_77 Куратор тега Хабр
Product manager at habr.com
Привет!
Вообще RSS-запросы блочить не должно, будем разбираться, если в саппорте не хватит данных из вашего обращения – запросим ещё дополнительно
Ответ написан
opium
@opium
Просто люблю качественно работать
похоже на blackhole от анти-DDoS Хабра (у них Qrator), а не обычный rate limit — TCP-хендшейк вообще не проходит, а 429/403 так не выглядят. Вероятнее всего ловит TLS/HTTP2-отпечаток дефолтного Go http.Client, а не UA-строку — curl даёт другой fingerprint и потому не банится. Попробуй GODEBUG=http2client=0 и сними tcpdump на момент бана, для сравнения убери ?limit=100. Если стабильно ловит разные чистые IP — тащи в поддержку Хабра UTC-время, IP и дамп.
Ответ написан
Комментировать
Lord_of_Rings
@Lord_of_Rings
Northern Strider
Не логичней ли задать этот вопрос техподдержке Хабра?
Ответ написан
@Drno
сделай TLS отпечаток хрома или фаерфокса, вместо чистого GO
эт РКНка запросто может быть
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы