Skip to content

lambotik/cors-scaner

Repository files navigation

🔐 CORS Security Scanner

Профессиональный инструмент для комплексного анализа безопасности 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.txt

CLI интерфейс

# Базовая проверка с 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

🔒 Особенности CORS заголовков

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 - Командный интерфейс для использования из терминала

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published