13 Mar 2026, 07:04 UTC131 views7 reactionsread 8 August 2026 🔐 Хранение и защита данных
Одной из самых важных задач backend-разработчика является безопасное хранение данных пользователей.
Ошибки на этом этапе могут привести к утечке данных, взлому аккаунтов и компрометации системы.
ℹ️ Хеширование паролей
Пароли никогда нельзя хранить в открытом виде.
Вместо этого используется хеширование — одностороннее преобразование пароля в строку фиксированной длины.
Пример плохой практи…
custom 53483098721799496372custom 53908611869232606992custom 53910178501503298731custom 54384964630447529721custom 58930899922253293321
12 Mar 2026, 07:02 UTC86 views8 reactionsread 8 August 2026 🔐 Безопасность серверной инфраструктуры
Даже если код приложения написан безопасно, сервер всё равно может стать целью атак.
Поэтому backend-разработчику важно понимать базовые принципы защиты инфраструктуры.
ℹ️ Ограничение доступа к серверу
Одна из первых мер безопасности — правильная настройка доступа.
✔️ Рекомендуется:
⏺ использовать SSH-ключи вместо паролей
⏺️ отключить вход по паролю
⏺️ запретить вход под поль…
custom 53908611869232606992custom 53910178501503298732custom 58930899922253293322custom 53458604909857477581custom 54384964630447529721
11 Mar 2026, 07:02 UTC57 views8 reactionsread 8 August 2026 🔐 Защита от популярных веб-уязвимостей
Любое веб-приложение может стать целью атак.
Три самых распространённых угроз для backend-разработчика: SQL Injection, XSS и CSRF.
ℹ️ SQL Injection
Атакующий вставляет SQL-код в поля ввода, чтобы получить доступ к базе данных или изменить её.
❌ Пример уязвимого кода:
@app.get("/user/")
def get_user(name: str):
query = f"SELECT * FROM users WHERE name = '{name}'"
result…
custom 54561406740280194863custom 53908611869232606992custom 53910178501503298732custom 53483098721799496371
10 Mar 2026, 07:02 UTC63 views5 reactionsread 8 August 2026 🔐 Безопасность передачи данных
При работе с веб-приложениями данные пользователей передаются по сети.
Без защиты злоумышленники могут перехватить логины, пароли и другую чувствительную информацию.
HTTPS и TLS решают эту проблему.
ℹ️ HTTP vs HTTPS
HTTP
Шифрование: нет
Безопасность: данные передаются открытым текстом
HTTPS
Шифрование: есть
Безопсность: данные шифруются
⏺ HTTPS = HTTP + TLS (Transport Layer Security…
custom 54561406740280194863custom 53910178501503298731custom 54384964630447529721
9 Mar 2026, 11:03 UTC62 views8 reactionsread 8 August 2026 🔐 Аутентификация и авторизация
Веб-приложения используют два разных, но взаимосвязанных процесса:
1️⃣ Аутентификация (Authentication) — проверка личности пользователя.
Кто вы есть?
2️⃣ Авторизация (Authorization) — проверка прав пользователя.
Что вам разрешено делать?
ℹ️ Аутентификация
Варианты:
⏺ Username + password — классика
⏺ OAuth2 / Google / GitHub — сторонние сервисы
⏺ JWT (JSON Web Tokens) — токены для без…
custom 58930899922253293323custom 53910178501503298732custom 53458604909857477581custom 54249724700231040891custom 54384964630447529721
9 Mar 2026, 07:04 UTC58 views8 reactionsread 8 August 2026 🔐 Введение в Web Security
Web Security — это комплекс мер и технологий, которые защищают веб-приложения, сайты и API от атак, утечек данных и злоумышленников.
❓ Зачем изучать Web Security
⏺ Защита пользователей от кражи данных
⏺ Предотвращение взлома и утечек
⏺ Соблюдение стандартов безопасности и законодательства
⏺ Повышение доверия к продукту и компании
✅ Аутентификация и авторизация
✅ Безопасность передачи данн…
custom 53458604909857477583custom 53908611869232606991custom 54249724700231040891custom 54384964630447529721custom 54561406740280194861custom 58930899922253293321
7 Mar 2026, 07:03 UTC64 views7 reactionsread 8 August 2026 👩💻 Volumes в Docker — хранение данных
По умолчанию данные в контейнере не сохраняются после его удаления.
Чтобы база данных или файлы не терялись — используют Volumes.
❓ Зачем нужны Volumes
⏺ сохранить данные при пересоздании контейнера
⏺ разделить код приложения и данные
⏺ использовать один и тот же набор данных между разными контейнерами
ℹ️ Пример: PostgreSQL без Volumes
services:
db:
image: postgres:16
…
custom 53483098721799496372custom 53908611869232606992custom 54384964630447529721custom 54561406740280194861custom 58930899922253293321
6 Mar 2026, 07:02 UTC65 views7 reactionsread 8 August 2026 👩💻 Переменные окружения в Docker
Переменные окружения (environment variables) — это способ передавать настройки приложению без хардкода в коде.
Для backend это критично:
⏺ пароли
⏺ токены
⏺ строки подключения к БД
⏺ режимы запуска (dev / prod)
❓ Зачем нужны переменные окружения
❌ Плохо:
DATABASE_URL = "postgresql://postgres:postgres@localhost:5432/postgres"
✅ Хорошо:
DATABASE_URL = os.getenv("DATABASE_URL")
👉 Код…
custom 53458604909857477582custom 53908611869232606992custom 54249724700231040891custom 54384964630447529721custom 58930899922253293321
5 Mar 2026, 07:02 UTC54 views7 reactionsread 8 August 2026 👩💻 Docker Compose — API + база данных
Docker Compose позволяет запускать несколько сервисов сразу
(backend, база данных, Redis и т.д.) одной командой.
Для backend это стандарт:
👉 API + PostgreSQL = один docker-compose.yml
🗂 Структура проекта
app/
├─ main.py
├─ database.py
├─ requirements.txt
├─ Dockerfile
└─ docker-compose.yml
📁 docker-compose.yml (FastAPI + PostgreSQL)
version: "3.9"
services:
api:
…
custom 53910178501503298732custom 54249724700231040892custom 58930899922253293322custom 54384964630447529721
4 Mar 2026, 12:11 UTC53 views8 reactionsread 8 August 2026 👩💻 Dockerfile — сборка backend-приложения (FastAPI)
Dockerfile — это инструкция, по которой Docker собирает образ с твоим backend-приложением.
Цель:
👉 получить образ, который можно запустить где угодно без дополнительной настройки.
🗂 Минимальная структура проекта
app/
├─ main.py
├─ requirements.txt
├─ .dockerignore
└─ Dockerfile
ℹ️ Пример FastAPI-приложения
from fastapi import FastAPI
app = FastAPI()
@app.…
custom 53908611869232606994custom 53458604909857477581custom 53483098721799496371custom 54249724700231040891custom 54384964630447529721
15 Feb 2026, 07:00 UTC99 views11 reactionsread 8 August 2026 👩💻 Установка Docker и Docker CLI
Чтобы работать с контейнерами, нам нужны:
⏺ Docker Engine — сам Docker
⏺ Docker CLI — команда docker в терминале
🖥 Установка Docker
⏺ Linux (Ubuntu)
# зависимости
sudo apt update
sudo apt install ca-certificates curl -y
# добавляем GPG-ключ Docker
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
…
custom 53908611869232606995custom 53458604909857477582custom 53483098721799496372custom 54249724700231040891custom 54384964630447529721
14 Feb 2026, 11:05 UTC82 views11 reactionsread 8 August 2026 👩💻 Что такое контейнеризация и как работает Docker
Контейнеризация — это подход к запуску приложений, при котором приложение запускается в изолированной среде вместе со всеми своими зависимостями.
Проще говоря:
👉 приложение + Python + библиотеки + настройки = один контейнер
❓ Какую проблему решает контейнеризация
Без Docker:
⏺ разные версии Python
⏺ разные версии библиотек
⏺ ручная настройка сервера
⏺ «у меня раб…
custom 53908611869232606994custom 53458604909857477583custom 58930899922253293322custom 54384964630447529721custom 54561406740280194861
Showing the 12 most recent of 20 posts we hold for @backend_journey. View and reaction counts are the latest single reading for each post, not a live figure, and a recent post is still accumulating both. A view count marked ≈ was rounded by Telegram before we ever saw it — t.me prints views in full below 1,000 and to three significant figures above, so ≈1,200,000 means somewhere between 1,150,000 and 1,249,999. Unmarked counts are exact. Text is reproduced from the public post preview and truncated for length.