Skip to content

Уязвимости

При работе с проектами исправлял следующие виды уязвимостей:

  • CSRF-уязвимости;
  • SQL-уязвимости;
  • XSS;
  • Directory Traversal leads to RCE;
  • отсутствие необходимых заголовков.

CSRF, cookies и security headers

Для снижения риска CSRF и связанных browser-based атак использовал несколько уровней защиты:

  • настройка cookie-атрибутов: SameSite, Secure, HttpOnly;
  • проверка и корректная обработка Origin / Referer для чувствительных запросов;
  • разделение browser-based и token-based auth flow, чтобы уменьшать поверхность атаки;
  • настройка CSRF-защиты для stateful web-сценариев;
  • ограничение кросс-доменных сценариев через CORS и правила работы с credentialed requests;
  • добавление обязательных security headers на уровне backend / web-server.

XSS (Cross-Site Scripting)

  • замена html() на text();
  • обновление js-библиотек, у которых выявлены уязвимости;
  • настройка Content Security Policy заголовков;
  • валидация, экранирование на бэкенде и фронте.

SQL-уязвимости

  • использование prepared-запросов;
  • валидация и экранирование входных данных при необходимости.

Directory Traversal leads to RCE

  • фильтрация входных данных, whitelist для доступа к файлам;

Security headers и transport security

  • Strict-Transport-Security;
  • Content-Security-Policy;
  • X-Frame-Options / frame-ancestors;
  • X-Content-Type-Options;
  • cookie policy: SameSite, Secure, HttpOnly.

Отладка и поиск уязвимостей

Для поиска и тестирования кода на наличие уязвимостей использовал Burp Suite.

Также использую стандартные проверки зависимостей для frontend- и backend-стека:

  • composer audit для поиска уязвимостей в Composer-пакетах;
  • npm audit для поиска уязвимостей в npm-зависимостях;
  • обновление уязвимых пакетов и повторную проверку после исправлений.

См. также

Сайт обновлен и проверен: