{}const=>[]async()letfn</>var
ПрофессияОсновыРазработка

Как работает интернет "для хакера": DNS, HTTP/HTTPS, куки и сессии — на пальцах 🌐

Разбираем по полочкам, что происходит за одну секунду, когда ты открываешь сайт. DNS, HTTP, HTTPS, куки, сессии, JWT — без воды, с примерами атак и чек-листом безопасности. Всё, что должен знать каждый разработчик (и начинающий хакер 😏).

К

Кодик

Автор

4 мин чтения

Ты открываешь браузер, вбиваешь google.com, и через секунду видишь страницу. Магия? Нет. За этой секундой скрывается целая цепочка событий, которую каждый разработчик обязан понимать. А если ты хочешь думать как хакер (этичный, разумеется 😏), то знать это — не опция, а необходимость.

Давай разберём всё по полочкам. Без занудства, с примерами из жизни.

🔍 DNS — телефонная книга интернета

Компьютеры не понимают google.com. Они работают с IP-адресами вроде 142.250.74.206. А DNS (Domain Name System) — это огромная телефонная книга, которая переводит человеческие адреса в машинные.

Что происходит, когда ты вводишь адрес сайта:

  1. Кэш браузера — может, ты уже заходил? Тогда IP уже сохранён.

  2. Кэш операционной системы — система тоже запоминает.

  3. Роутер — даже он хранит свой кэш DNS.

  4. DNS-резолвер провайдера — если нигде не нашлось, запрос летит к серверу провайдера.

  5. Корневые DNS → TLD → авторитетный сервер — цепочка запросов, пока не найдётся ответ.

Вся эта история занимает миллисекунды. Но вот что интересно с точки зрения безопасности:

DNS-спуфинг — атакующий подменяет ответ DNS и отправляет тебя на фейковый сайт. Ты вводишь bank.com, а попадаешь на клон мошенников. Внешне — один в один. Именно поэтому одного DNS недостаточно — нужен HTTPS.

Попробуй сам: открой терминал и введи nslookup google.com или dig google.com. Увидишь, как твоя система ищет IP.

🔥 100 000+ учеников уже с нами

Устал читать теорию?
Пора кодить!

Кодик — приложение, где ты учишься программировать через практику. AI-наставник, интерактивные уроки, реальные проекты.

🤖 AI 24/7
🎓 Сертификаты
💰 Бесплатно
🚀 Начать учиться
Присоединились сегодня

📡 HTTP — открытка без конверта

HTTP (HyperText Transfer Protocol) — это протокол, по которому браузер общается с сервером. Работает по принципу «запрос — ответ».

Анатомия HTTP-запроса:

GET /profile HTTP/1.1
Host: example.com
Cookie: session_id=abc123
User-Agent: Mozilla/5.0

Сервер отвечает:

HTTP/1.1 200 OK
Content-Type: text/html
Set-Cookie: session_id=abc123

<html>...</html>

Просто, правда? Но есть огромная проблема: HTTP передаёт всё открытым текстом. Представь, что ты отправляешь открытку по почте — любой почтальон может её прочитать. Логин, пароль, номер карты — всё видно.

Основные HTTP-методы:

GET «дай мне данные»

POST «вот мои данные»

PUT «обнови это»

DELETE «удали это»

Коды ответов, которые стоит запомнить:

200всё ок

301редирект

403запрещено

404не найдено

500сервер упал

Хакер, перехватив HTTP-трафик (например, в публичном Wi-Fi), видит абсолютно всё. Поэтому чистый HTTP сегодня — это уязвимость.

🔒 HTTPS — конверт с сургучной печатью

HTTPS — тот же HTTP, но обёрнутый в шифрование через TLS (Transport Layer Security). Теперь данные выглядят как мешанина символов для всех, кроме отправителя и получателя.

Как устанавливается защищённое соединение (TLS Handshake):

  • Клиент: «Привет, я хочу безопасно поговорить. Вот мои возможности шифрования.»

  • Сервер: «Привет! Вот мой SSL-сертификат — можешь проверить, что я настоящий.»

  • Клиент: проверяет сертификат через центр сертификации (CA).

  • Оба генерируют общий секретный ключ.

  • Дальше всё общение зашифровано этим ключом.

Зачем это хакеру?

Даже если злоумышленник перехватит HTTPS-трафик, он увидит лишь зашифрованный мусор. Но есть нюансы:

Устаревшие версии TLS (1.0, 1.1) имеют известные уязвимости. Неправильно настроенные сертификаты — если пользователь привыкнет нажимать «всё равно перейти», его можно обмануть. MITM (Man-in-the-Middle) — атакующий встаёт между клиентом и сервером, подставляя свой сертификат. Обращай внимание на замочек 🔒 в адресной строке!

🍪 Куки — цифровой бейджик

HTTP — протокол без состояния (stateless). Сервер не помнит тебя между запросами. Каждый раз ты для него — незнакомец. Куки решают эту проблему.

Cookie — маленький кусочек текста, который сервер просит браузер сохранить и отправлять с каждым запросом.

Как это работает:

  1. Ты логинишься на сайте.

  2. Сервер создаёт сессию и отвечает: Set-Cookie: session_id=xyz789

  3. Браузер сохраняет эту куку.

  4. При каждом следующем запросе браузер отправляет: Cookie: session_id=xyz789

  5. Сервер видит ID и понимает: «А, это тот самый пользователь!»

Виды кук:

Session- Живут до закрытия браузера

Persistent- Живут до указанной даты

HttpOnly- JS не может их прочитать — защита от XSS

Secure - Отправляются только по HTTPS

SameSite - Защита от CSRF-атак

Почему хакеры охотятся за куками:

Если украсть чужую session cookie — можно войти на сайт от имени жертвы без логина и пароля. Это называется session hijacking (угон сессии).

Способы кражи: XSS (вредоносный скрипт ворует cookie), перехват трафика (если нет HTTPS), физический доступ к чужому браузеру.

🎫 Сессии — кто ты для сервера?

Сессия — это механизм хранения данных о пользователе на стороне сервера. Cookie содержит только ID сессии (ключ), а все данные (имя, роль, корзина покупок) лежат на сервере.

Cookie vs Session — в чём разница:

Cookie

Session

Где хранится

В браузере

На сервере

Размер

До ~4 КБ

Без ограничений

Безопасность

Клиент может изменить

Клиент видит только ID

Пример

theme=dark

user_id=42, role=admin

JWT — альтернативный подход:

Вместо хранения сессий на сервере можно использовать JSON Web Token (JWT). Это токен, который содержит зашифрованную информацию о пользователе. Сервер не хранит состояние — всё внутри токена.

Структура: header.payload.signature
Плюсы: масштабируемость (не нужна общая БД сессий). Минусы: нельзя «убить» отдельный токен до истечения срока.

📱 Хочешь по-настоящему разобраться — практикуйся!

Теория — это фундамент, но настоящее понимание приходит только через практику. Попробуй Кодик — приложение, где ты учишься программированию через решение реальных задач. Никакой воды — только практика и понятные объяснения.

А ещё подписывайся на наш Telegram-канал — полезные посты по программированию, разборы тем и лайфхаки. Читай в метро, за обедом или перед сном 🚀

🧠 Итог

Интернет — это не магия. Это цепочка протоколов, каждый из которых решает свою задачу. DNS переводит имена в адреса, HTTP доставляет данные, HTTPS их шифрует, куки хранят состояние, а сессии — идентифицируют пользователя.

Понимание этих основ — первый шаг к тому, чтобы писать безопасный код и думать на шаг впереди. Не как обычный пользователь, а как тот, кто знает, что происходит под капотом. 🧠

🎯Хватит откладывать

Понравилась статья?
Пора применять на практике!

В Кодик ты не просто читаешь — ты сразу пишешь код. Теория + практика = реальный скилл.

Мгновенная практика
🧠AI объяснит код
🏆Сертификат

Без регистрации • Без карты