Уязвимости
При работе с проектами исправлял следующие виды уязвимостей:
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-зависимостях;- обновление уязвимых пакетов и повторную проверку после исправлений.