Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

🛡️ Webscan — Security, SEO & AI Website Auditor

Webscan — это клиентский инструмент для комплексного технического аудита и анализа безопасности веб-приложений. Приложение проверяет заголовки HTTP, наличие утечек конфиденциальных файлов (например, .git), параметры SEO-оптимизации, задержку сети (Latency) и автоматически генерирует исполнительное резюме (Executive Summary) с помощью встроенного ИИ-агента.

Инструмент реализован на истом HTML/CSS/JavaScript (Single Page Application) без сторонних heavy-фреймворков и бэкенда, что делает его невероятно быстрым, автономным и лёгким в развёртывании.


✨ Ключевые возможности

  • 🛡️ Анализ заголовков безопасности (HTTP Security Headers):

    • Проверка Content-Security-Policy (CSP) для предотвращения XSS-атак.
    • Проверка Strict-Transport-Security (HSTS) для контроля HTTPS-соединения.
    • Проверка X-Frame-Options (защита от Clickjacking).
    • Проверка X-Content-Type-Options (предотвращение MIME-sniffing).
    • Проверка Referrer-Policy и выявление утечек через заголовки Server и X-Powered-By.
  • 📂 Проверка утечек конфигурации и ключевых файлов:

    • Поиск критической утечки открытого каталога версионирования /.git/HEAD.
    • Проверка стандартизированного файла безопасности /.well-known/security.txt (RFC 9116).
    • Проверка наличия карты сайта sitemap.xml.
  • 🤖 AI Executive Summary & Quick-Fix Agent:

    • Интерактивная панель ИИ-аналитика с пульсирующим статус-индикатором.
    • Автоматический разбор найденных уязвимостей, классификация рисков и выдача готовых директив для исправления в виде скопируемого кода.
  • ❌ Умная обработка недоступности доменов:

    • Распознавание несуществующих доменов, сетевых тайм-аутов и ошибок резолва DNS.
    • Наглядное отображение состояния ошибки с рекомендациями по диагностике через консоль (ping, CORS check).
  • ⚙️ Гибкая настройка аудита:

    • Включение/отключение отдельных модулей аудита (Security, Headers, Files, SEO).
    • Настраиваемый тайм-аут запросов (3с / 5с / 10с).
    • Поддержка CORS-Proxy Mode (через AllOrigins API) для сканирования сайтов с жесткой политикой Same-Origin Policy.
  • 📄 Экспорт и темы оформления:

    • Монохромная адаптивная система тем: Auto (System preference), Light, Dark.
    • Выгрузка отчёта в структурированный файл JSON.
    • Готовый к печати и сохранению в PDF стилизованный слой через @media print.

🛠️ Архитектура и структура кода

Приложение создано в рамках идеологии Single File Architecture. Все компоненты (структура, стили и логика) объединены в одном файле index.html.

1. Стилизация и темы (<style>)

  • CSS Custom Properties (Переменные): Все цвета и параметры теней привязаны к переменным (--bg-color, --card-bg, --status-high-bg и т.д.).
  • Адаптивность тем: Тема меняется динамически с помощью атрибута [data-theme="dark"] или медиа-запроса @media (prefers-color-scheme: dark).
  • AI Panel Gradient & Pulse: Панель ИИ использует градиентную анимированную полосу (aiGradient) и светодиодную индикацию состояния (pulse).

2. Пользовательский интерфейс (<form>, <section>)

  • Hero Section: Форма ввода URL с авто-подстановкой схемы https:// и рекламные карточки возможностей.
  • Dashboard Section:
    • Индикатор общей оценки (Overall Score Circle).
    • Сетка категорий (Security, Headers, Config, SEO).
    • Блок ИИ-Агента (ai-summary-card).
    • Фильтр по категориям и список результатов (Findings Container).
  • Modal Settings: Модальное окно с чекбоксами модулей и конфигурацией таймаутов.

3. Логика сканирования и выполнения JavaScript (<script>)

fetchWithTimeout(url, options, timeoutMs)

Обертка над встроенным Fetch API с использованием AbortController. Прерывает запрос, если сервер не отвечает в течение заданного времени.

runFullAudit(urlObj)

Основная асинхронная функция сканирования.

  1. Pre-flight Check: Делает пробный запрос к /. Если происходит ошибка сети или превышен тайм-аут, функция вызывает renderUnreachableDomainState().
  2. Параллельные проверки: Если сайт доступен, последовательно запрашиваются конфигурационные файлы (/.git/HEAD, security.txt, sitemap.xml).
  3. Анализ заголовков и HTML: Считываются HTTP-заголовки ответов и парсится HTML DOM с помощью DOMParser() для оценки тегов SEO (<title>, <meta name="description">, og:image).
  4. Расчёт рейтинга (calculateScores): Динамически вычитает баллы за уязвимости (High: -25, Medium: -12, Low: -5) и формирует итоговый балл.

generateAISummary(findings, scores)

Синтезирует полученный массив проблем, группирует критические уязвимости и генерирует рекомендательный блок с кодом решений.


🚀 Быстрый запуск

  1. Склонируйте репозиторий:
    git clone [https://github.com/your-username/webscan.git](https://github.com/your-username/webscan.git)
  2. Перейдите в папку проекта:
cd webscan
  1. Откройте файл index.html в любом современном веб-браузере:
    • Linux/macOS: open index.html или xdg-open index.html
    • Windows: нажмите дважды на index.html или выполните start index.html в PowerShell.

Альтернатива: Вы можете разместить файл index.html на GitHub Pages, Vercel или Netlify за пару кликов.

💻 Настройка и обход CORS

Из-за ограничений безопасности современных браузеров (CORS Policy) некоторые веб-сайты могут запрещать прямые запросы через fetch().

  • Если при сканировании вы получаете сетевую ошибку или ограниченный доступ:
    • Нажмите на кнопку ⚙️ Settings в шапке сайта.
    • Включите опцию "Использовать CORS-Proxy".
    • Запустите аудит заново.

📄 Лицензия: Проект распространяется под лицензией MIT. Вы можете свободно использовать, модифицировать и встраивать данный код в свои проекты.

About

Webscan — это клиентский инструмент для комплексного технического аудита и анализа безопасности веб-приложений. Приложение проверяет заголовки HTTP, наличие утечек конфиденциальных файлов (например, .git), параметры SEO-оптимизации, задержку сети (Latency) и автоматически генерирует исполнительное резюме (Executive Summary) с помощью встроенного ИИ

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages