OWASP Top 10 на практике
OWASP Top 10 — это список самых частых веб-уязвимостей. Он и на интервью, и в ревью-чеклистах. Разбираем не теорией, а «как ломают и как чинить».
XSS — внедрение скриптов
// уязвимо: пользовательский ввод вставляется в HTML как есть
div.innerHTML = `Привет, ${comment.text}`;
// безопасно: текст, а не HTML
comment.textContent = comment.text;
ℹ️
Любой ввод может стать кодом. Escape-функции/фреймворки (React по умолчанию экранирует), Content-Security-Policy, валидация на сервере — три линии защиты разом.
CSRF, IDOR, инъекции
- CSRF: злой сайт отправляет запрос от вашего куки-токена → защита: CSRF-токены (или SameSite cookies) и проверка Origin;
- IDOR: менять id в URL, чтобы увидеть чужие данные → всегда проверять права на объект, а не только авторизацию;
- SQL-инъекция: параметризованные запросы исключают проблему — «$1» вместо склейки строк.
// безопасно: параметризованный запрос
await db.query("SELECT * FROM posts WHERE id=$1 AND user_id=$2", [id, userId]);
💡
Ментальная модель: любое действие через HTTP «от имени юзера» — это вектор атаки. Вопрос «а можно ли вот так?» на этапе ревью экономит месяцы боли в проде.