Вы подменили User-Agent, и сервер всё равно знает, что это curl. Он понял это до того, как получил заголовки
jbenderov 14 минут назад Вы подменили User-Agent, и сервер всё равно знает, что это curl. Он понял это до того, как получил заголовки Средний 5 мин 433 Информационная безопасность * Сетевые технологии * Веб-разработка *...
<5 — 2026'da uzaya kaç SpaceX Starship fırlatması ulaşacak?
Вот важная новость с фронта ИИ: jbenderov 14 минут назад Вы подменили User-Agent, и сервер всё равно знает, что это curl. Он понял это до того, как получил заголовки Средний 5 мин 433 Информационная безопасность * Сетевые технологии * Веб-разработка * Аналитика Разговор, который у меня повторяется примерно раз в квартал. Интеграция ходит к партнёрскому API, партнёр её режет.
Разработчик ставит в запрос User-Agent от Chrome. Дальше идут версии про адрес, про частоту, про капчу — и все мимо. Сервер понял, что это не браузер, ещё до того, как увидел хоть один HTTP-заголовок.
Технические детали
User-Agent он в тот момент не читал, потому что читать было нечего: HTTP начинается после установления TLS, а решение принимается по первому же пакету рукопожатия. Одинаковый User-Agent, разные клиентыПроверяется это на публичном сервисе, который возвращает отпечаток пришедшего TLS-клиента. Сначала curl, честно представляющийся собой:$ curl -s "user_agent": "curl/8.
0", "ja4": "t13d9013h2_c6771aded2ed_57a60bdf03d1" Теперь тот же curl, но с User-Agent от Chrome:$ curl -s -A "Mozilla/5. 0 (X11; Linux x86_64) AppleWebKit/537. 36" \ "user_agent": "Mozilla/5.
0 (X11; Linux x86_64) ... 36", "ja4": "t13d9013h2_c6771aded2ed_57a60bdf03d1" Отпечаток не изменился ни на символ. А вот что отдаёт настоящий браузер, открывший ту же страницу:"ja4": "t13d1516h2_8daaf6152771_d8a2da3f94cd" Совпадает только рамка: TCP, TLS 1.
Отраслевые последствия
3, SNI на месте, ALPN h2. Всё, что описывает сам стек, разное. Заголовок подменился, клиент — нет.
Что именно отпечатываетсяTLS-соединение начинается с сообщения ClientHello. Клиент в нём перечисляет, что умеет: версии протокола, список поддерживаемых шифров, набор расширений, эллиптические кривые, форматы точек, алгоритмы подписи, список протоколов в ALPN. Ничего из этого приложение обычно не выбирает.
Список формирует библиотека TLS — BoringSSL в Chrome, NSS в Firefox, Schannel в системных компонентах Windows, OpenSSL или GnuTLS в утилитах командной строки. Состав и порядок в нём определяются кодом библиотеки и её версией, а не тем, что программа напишет в заголовке потом. JA4 — способ записать увиденное короткой строкой.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.




