Профессиональный инструмент для комплексного анализа безопасности HTTP-заголовков веб-приложений.
Проверка 11+ критических security-заголовков:
- Content-Security-Policy (CSP) - защита от XSS атак и внедрения кода
- Strict-Transport-Security (HSTS) - принудительное использование HTTPS
- X-Frame-Options - защита от clickjacking атак
- X-Content-Type-Options - предотвращение MIME-sniffing
- Referrer-Policy - контроль утечки данных реферера
- Permissions-Policy - управление доступом к API браузера
- Access-Control-Allow-Origin - CORS политика для кросс-доменных запросов
- Access-Control-Allow-Methods - разрешенные HTTP методы для CORS
- Access-Control-Allow-Headers - разрешенные заголовки для CORS
- Access-Control-Allow-Credentials - управление передачей учетных данных
- X-XSS-Protection - дополнительная защита от XSS
Глубокий анализ значений:
- Проверка опасных настроек (
unsafe-inline,unsafe-eval) - Анализ совместимости CORS политик
- Валидация HSTS директив (
max-age,includeSubDomains,preload) - Обнаружение конфликтующих конфигураций
- Этический анализ последствий для приватности пользователей
Категоризация рисков:
- 🟥 Критические - CSP, HSTS, X-Frame-Options
- 🟪 CORS политики - управление кросс-доменным доступом
- 🟦 Приватность - контроль утечки данных и доступ к устройствам
Веб-интерфейс - интуитивный UI для ручной проверки с мгновенными результатами
HTML отчеты - красивые визуализированные отчеты с цветовой кодировкой:
- Структурированное представление по категориям важности
- Визуальные индикаторы статуса (✅ присутствует / ❌ отсутствует)
- Графическая оценка безопасности с прогресс-баром
- Контекстные рекомендации для каждого заголовка
- Адаптивный дизайн для мобильных устройств
Текстовые отчеты - для интеграции и автоматизации:
- Консольный вывод с цветовым форматированием
- Поддержка экспорта в файлы для документации
- Машинно-читаемый формат для CI/CD пайплайнов
Консольный вывод - быстрая проверка через CLI:
- Цветовые индикаторы рисков
- Краткая сводка и детальная информация
- Поддержка различных форматов вывода (текст, JSON)
Security Score - общая оценка безопасности (0-100%):
- Взвешенная система оценки с приоритетом критических заголовков
- Учет качества настройки присутствующих заголовков
- Штрафы за опасные конфигурации и предупреждения
Web UI - Flask веб-приложение с современным дизайном:
- Одностраничное приложение с мгновенной обработкой
- Поддержка быстрых тестовых примеров
- Валидация URL в реальном времени
- История сканирований в рамках сессии
REST API - для интеграции с другими системами:
- JSON API для программного доступа
- Поддержка массового сканирования URL
- Стандартные HTTP коды ответов
- Детальная информация об ошибках
CLI интерфейс - для скриптов и автоматизации:
- Поддержка аргументов командной строки
- Гибкие форматы вывода (HTML, текст, JSON)
- Настройка таймаутов и параметров сканирования
- Интеграция с системами мониторинга
Этический анализ - оценка влияния на приватность пользователей:
- Объяснение этических последствий отсутствия заголовков
- Рекомендации по защите пользовательских данных
- Оценка уровня доверия к веб-приложению
CORS Preflight тестирование - полная проверка CORS политик:
- Автоматические OPTIONS запросы
- Анализ заголовков preflight
- Проверка совместимости credentials с origin
Сравнительный анализ - бенчмаркинг против отраслевых стандартов:
- Сравнение с лучшими практиками индустрии
- Рекомендации по улучшению на основе эталонов
Мультиязычность - поддержка русского и английского интерфейсов:
- Динамическое переключение языка
- Локализованные отчеты и рекомендации
- Асинхронное сканирование - высокая производительность при массовых проверках
- Кеширование результатов - оптимизация повторных запросов
- Расширяемая архитектура - легко добавить новые заголовки для анализа
- Подробное логирование - диагностика проблем и мониторинг работы
- Контейнеризация - готовность к развертыванию в Docker
git clone <repository-url>
cd cors-security-scanner
pip install -r requirements.txtCLI интерфейс
# Базовая проверка с HTML отчетом
python main.py https://example.com| Заголовок | Назначение | Критичность | Пример значения |
|---|---|---|---|
Content-Security-Policy |
Защита от XSS атак и внедрения скриптов | 🔴 Критический | default-src 'self'; script-src 'self' |
Strict-Transport-Security |
Принудительное использование HTTPS, защита от downgrade атак | 🔴 Критический | max-age=31536000; includeSubDomains |
X-Frame-Options |
Защита от clickjacking атак | 🔴 Критический | DENY или SAMEORIGIN |
X-Content-Type-Options |
Блокировка MIME-sniffing, предотвращение подмены типа контента | 🟡 Важный | nosniff |
Referrer-Policy |
Контроль утечки данных реферера, защита приватности | 🟡 Важный | strict-origin-when-cross-origin |
Permissions-Policy |
Управление доступом к API устройств (камера, микрофон и т.д.) | 🟡 Важный | camera=(), microphone=() |
Access-Control-Allow-Origin |
Контроль CORS политики, определяет разрешенные домены для кросс-доменных запросов | 🔴 Критический | https://trusted-domain.com или * |
Access-Control-Allow-Methods |
Разрешенные HTTP методы для CORS запросов | 🟡 Важный | GET, POST, OPTIONS |
Access-Control-Allow-Headers |
Разрешенные заголовки для CORS запросов | 🟡 Важный | Content-Type, Authorization |
Access-Control-Allow-Credentials |
Разрешение передавать credentials (cookies, auth) в CORS запросах | 🔴 Критический | true |
Origin |
Указывает источник запроса (браузер автоматически добавляет) | 🔵 Информационный | https://example.com |
X-XSS-Protection |
Защита от XSS (устаревшая, но поддерживается) | 🔵 Информационный | 1; mode=block |
Cache-Control |
Управление кешированием чувствительных данных | 🔵 Информационный | no-store, no-cache |
Access-Control-Allow-Origin
*- открыт для всех доменов (опасно для конфиденциальных данных)https://specific-domain.com- разрешен только конкретный домен- Отсутствие заголовка - CORS запросы будут блокироваться браузером
Access-Control-Allow-Credentials
true- разрешает передачу cookies и авторизационных данных- Требует явного указания домена в
Access-Control-Allow-Origin(не*)
Origin
- Автоматически добавляется браузером в CORS запросы
- Показывает, с какого домена пришел запрос
cors-scanner/
├── app.py # Flask веб-приложение (основной entry point)
├── scanner.py # Ядро сканирования заголовков
├── analyzer.py # Анализ и выявление проблем
├── ethic.py # Этический анализ безопасности
├── report_generator.py # Генерация HTML отчетов
├── report.py # Консольные и текстовые отчеты
├── main.py # CLI интерфейс
├── requirements.txt # Зависимости Python
├── templates/ # HTML шаблоны
│ ├── index.html # Главная страница с формой ввода
│ └── report.html # Шаблон отчета с результатами
└── static/ # Статические файлы
└── favicon.ico # Иконка приложения
app.py- Основное Flask приложение, обработка HTTP запросов, маршрутизацияscanner.py- Выполняет HTTP запросы и собирает заголовки безопасностиanalyzer.py- Анализирует заголовки на наличие уязвимостей и проблемethic.py- Оценивает этические аспекты безопасности и приватностиreport_generator.py- Генерирует HTML отчеты с использованием Jinja2 шаблоновreport.py- Создает текстовые и консольные отчетыmain.py- Командный интерфейс для использования из терминала