An enterprise-grade, academic-caliber automated web security posture auditing platform, heuristic phishing detection engine, technology stack fingerprinting suite, and technical SEO/Lighthouse auditor. Built with a high-contrast Neo-Brutalist interface and a zero-dependency backend.
- Executive Overview
- System Architecture & Data Flow
- Repository Components
- 10-Vector Security Evaluation Engine
- Self-Defense & Abuse Safeguards
- API Reference
- Quick Start Guide
- Project Directory Layout
- License
SecurIn is engineered to evaluate public web properties across multiple attack vectors without relying on heavy third-party scanning frameworks or bloated dependency chains.
- 10-Vector Security Auditing: Real-time evaluation of SSL/TLS certificate chains, HTTP security headers, DNS anti-spoofing policies (CAA, SPF, DMARC, DNSSEC), cookie/CORS policies, sensitive path exposures (
.env,.git), and heuristic phishing indicators. - Mozilla Observatory Benchmarking: Side-by-side comparative analysis matching target configurations against standard Mozilla Observatory rules.
- Technology Stack Profiling: Fingerprints web servers, frontend frameworks, content management systems (CMS), CDNs, and cloud hosting infrastructure.
- Technical SEO & Lighthouse Simulation: Audits meta tags, OpenGraph data, crawlability, DOM structure, and simulates Core Web Vitals.
- Multi-Surface Access: Accessible via a high-performance React Web Application, an unpacked Chrome Extension, and a RESTful HTTP API.
- Client-Side PDF Dossier Generation: Exports formal branded security audit reports directly from the browser using
jspdfandjspdf-autotable.
flowchart TD
subgraph Clients ["Client Layer"]
UI["Web Dashboard (React 19 + Vite)<br/>http://localhost:5173"]
EXT["Chrome Extension (Manifest V3)<br/>Active Tab QuickScan"]
end
subgraph Perimeter ["Defensive Perimeter & Gateway"]
Proxy["Nginx Reverse Proxy (:80)"]
Router["Node.js Router & Abuse Shield (:3000)"]
SSRF["SSRF Filter (RFC 1918 + Cloud Metadata Block)"]
Limiter["Sliding-Window Rate Limiter"]
end
subgraph CoreEngine ["SecurIn Core Analysis Engine"]
TLS["TLS/SSL Cert Extractor (tls.connect)"]
DNS["DNS Security Prober (CAA, SPF, DMARC)"]
Headers["HTTP Defense Headers & Cookies/CORS"]
Files["Sensitive File Prober (.env, .git)"]
Phish["Heuristic Phishing & Homograph Detector"]
Scorer["10-Channel Weighted Scorer (0-100, A+-F)"]
Tech["Tech Stack Fingerprinter"]
SEO["Lightweight SEO & Lighthouse Crawler"]
Bench["Mozilla Observatory Comparator"]
end
subgraph Storage ["In-Memory Telemetry"]
D1[("D1: Scan History Store (50 max)")]
D2[("D2: SEO History Store (50 max)")]
D3[("D3: Domain Trends Store (Time-Series)")]
end
subgraph Targets ["External Audit Targets"]
Host["Target Web Server"]
DNS_Auth["Authoritative DNS Servers"]
Obs_API["Mozilla Observatory API"]
end
UI & EXT --> Proxy --> Router
Router --> SSRF --> Limiter
Limiter --> TLS & DNS & Headers & Files & Phish & Tech & SEO & Bench
TLS & Headers & Files & Tech & SEO <--> Host
DNS <--> DNS_Auth
Bench <--> Obs_API
TLS & DNS & Headers & Files & Phish --> Scorer
Scorer --> D1 & D3
SEO --> D2
Scorer & Tech & SEO & Bench --> Router --> UI & EXT
- Zero External Dependencies: Implemented strictly with Node.js standard runtime libraries (
http,https,tls,dns,net,crypto,url,fs,path). No supply-chain attack risks. - Perimeter Defense: Strict SSRF firewall blocking private subnets (
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16), loopback (127.0.0.1), link-local/cloud instance metadata (169.254.169.254), and dangerous schemes (javascript:,file:,data:). - Sliding-Window Rate Limiting: Client IP request tracking with standard
X-RateLimit-*andRetry-Afterheaders. - Self-Defense Security Headers: Every HTTP response is automatically protected with strict Content Security Policy,
X-Frame-Options: DENY,X-Content-Type-Options: nosniff, and Cross-Origin Opener Policy. - Detailed documentation: backend/README.md
- Modern Stack: Built with React 19, Vite 8, and Tailwind CSS 3.
- Neo-Brutalist / Cyberpunk Aesthetics: High-contrast, dynamic dashboard with micro-animations, radar scanners, and live score badges.
- Reactive Custom Hooks:
useScanner,useTechStack,useSeoScanner, anduseScanHistoryfor concurrent scanning state management. - Interactive Data Visualization: Historical domain trends plotted with
Chart.jsandreact-chartjs-2. - Exportable PDF Dossiers: Full branded security reports rendered directly in the browser via
jspdfandjspdf-autotable. - Detailed documentation: frontend/README.md
- Manifest V3 Architecture: Lightweight browser extension with background service worker (
background.js) and persistent options inchrome.storage.local. - One-Click Active Tab Discovery: Automatically reads and verifies the active tab with zero typing required.
- Dynamic Toolbar Badges: Dynamically flags tab security in real-time (
SECfor HTTPS,!for unencrypted HTTP). - 3-in-1 QuickScan: Simultaneously audits security, detects the hosting tech stack, and measures SEO metrics from the browser toolbar.
- Detailed documentation: extension/README.md
- STRIDE Threat Model: Formal threat modeling specifications aligned with OWASP Top 10 and NIST SP 800-115 (docs/THREAT_MODEL_STRIDE.md).
- Data Flow Diagrams (DFD & UFD): Complete Level 0 Context, Level 1 System, and Level 2 Decomposed Process specifications (docs/DATA_FLOW_DIAGRAM_UDF.md).
- Interactive Diagram Viewer: Standalone HTML page with live SVG rendering for visual diagram inspection and PDF export (docs/diagrams.html).
Every scan orchestrates concurrent audits across 10 specialized security vectors:
| # | Security Vector | Checks Performed | Scoring Weight |
|---|---|---|---|
| 1 | SSL / TLS Certificate | Issuer validity, expiration countdown, protocol version, SAN match, self-signed detection | 15% |
| 2 | HSTS Enforcement | Strict-Transport-Security presence, max-age duration, includeSubDomains, preload |
10% |
| 3 | Content Security Policy (CSP) | Directives strength, default-src, script-src, absence of 'unsafe-inline' / 'unsafe-eval' |
15% |
| 4 | Clickjacking Defense | X-Frame-Options (DENY / SAMEORIGIN), CSP frame-ancestors directive |
10% |
| 5 | MIME-Sniffing Defense | X-Content-Type-Options: nosniff validation |
5% |
| 6 | Referrer & Permissions | Referrer-Policy strictness, Permissions-Policy hardware feature restrictions |
5% |
| 7 | Cookie Hardening | Set-Cookie inspection for Secure, HttpOnly, and SameSite (Lax/Strict) flags |
10% |
| 8 | CORS Rigidity | Access-Control-Allow-Origin wildcard checks, credential exposure verification |
5% |
| 9 | DNS Anti-Spoofing | DNS records lookup: CAA policy, SPF authorization, DMARC enforcement, DNSSEC status | 10% |
| 10 | Sensitive File & Phishing Heuristics | Exposed file probing (.env, .git/HEAD, wp-config.php, id_rsa), punycode homographs, IP hostnames |
15% |
- A+ (95β100): Exemplary posture, maximum hardening across all channels.
- A (90β94): Excellent security posture, minor configuration improvements possible.
- B (80β89): Good baseline defense; missing optional headers or weak cookie policies.
- C (65β79): Fair posture; vulnerable to clickjacking, missing HSTS or weak CSP.
- D (50β64): Poor posture; critical headers absent, sensitive cookies unflagged.
- F (0β49): Critical risk; non-HTTPS, sensitive files exposed, or phishing heuristics flagged.
Because an automated scanner accepts arbitrary target URLs and makes outbound requests, the backend implements defense-in-depth safeguards:
[Incoming Request]
β
βΌ
[Length & Format Check] ββ> Reject if > 2048 chars or malformed
β
βΌ
[Scheme Whitelist] βββββββ> Only 'http:' and 'https:' allowed (Blocks file:, gopher:, ftp:)
β
βΌ
[SSRF Firewall] ββββββββββ> Blocks:
β’ Loopback: 127.0.0.0/8, ::1, localhost
β’ RFC 1918 Private: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
β’ Link-Local / Cloud Metadata: 169.254.169.254, 0.0.0.0/8
β
βΌ
[Sliding-Window Limiter] β> 429 Too Many Requests if client exceeds window threshold
β
βΌ
[Network Probe Guards] βββ> 5-second socket timeout, max 5 redirect depth
The backend exposes clean REST endpoints accessible by any client:
| Method | Endpoint | Query / Body Params | Description |
|---|---|---|---|
GET |
/api/health |
- | Liveness and healthcheck probe |
GET |
/api/security-status |
- | Active defense shields, SSRF filters, and client rate-limit status |
GET |
/api/scan |
url (required) |
Executes multi-vector security scan and returns score, grade, and findings |
GET |
/api/techstack |
url (required) |
Analyzes HTTP headers and HTML fingerprints to detect frameworks and servers |
GET |
/api/benchmark |
url (required) |
Compares target score side-by-side with Mozilla Observatory standards |
GET |
/api/history |
- | Returns the last 50 recorded scans |
GET |
/api/history/trend |
domain (required) |
Returns historical security score time-series for a specific domain |
POST/GET |
/api/seo/analyze |
url (required) |
Crawls HTML to evaluate SEO metadata, OpenGraph, and performance metrics |
GET |
/api/seo/history |
- | Returns recent SEO audit history records |
Run the entire platform (Backend + Frontend Reverse Proxy) with a single command:
# 1. Clone the repository
git clone https://github.com/your-username/web-security-analyzer.git
cd web-security-analyzer
# 2. Build and launch all containers
docker-compose up --buildAccess Points:
- Frontend Web Dashboard: http://localhost:5173 (or http://localhost:8080)
- Backend API: http://localhost:3000
- API Health Check: http://localhost:3000/api/health
To stop services:
docker-compose downcd backend
# No npm install required! Zero third-party dependencies.
# Development mode with native Node.js file watcher:
npm run dev
# Server runs on http://localhost:3000cd frontend
# Install frontend dependencies
npm install
# Start the Vite development server
npm run dev
# Dashboard runs on http://localhost:5173- Open Google Chrome (or Edge, Brave, Chromium).
- Navigate to
chrome://extensions/in the URL bar. - Enable Developer mode via the toggle switch in the top-right corner.
- Click "Load unpacked" in the top-left corner.
- Select the
extension/directory from this repository:web-security-analyzer/extension - The SecurIn β Quick Security Scanner icon will appear in your extensions toolbar. Click to pin it.
web-security-analyzer/
βββ backend/ # Zero-dependency Node.js Analysis Engine
β βββ config/env.js # Environment config & zero-dep .env loader
β βββ controllers/ # API request handlers (scan, techstack, seo, bench)
β βββ middleware/ # SSRF defense, URL sanitizer, rate limiter
β βββ routes/router.js # HTTP dispatcher, CORS & static fallback
β βββ seo/ # Crawler, HTML parser & Lighthouse simulator
β βββ services/ # TLS certs, DNS sec, sensitive files, heuristics
β βββ storage/historyStore.js # In-memory circular history & domain trends
β βββ Dockerfile # Hardened Node.js Alpine container
β βββ index.js # Server entry point
β βββ package.json
β
βββ frontend/ # React 19 + Vite + Tailwind CSS Web App
β βββ public/ # Static assets & icons
β βββ src/
β β βββ components/ # UI components (Hero, Navbar, TechStack, SEO)
β β βββ hooks/ # Custom hooks (useScanner, useSeoScanner)
β β βββ utils/ # PDF export service & helpers
β β βββ App.jsx # Main dashboard layout
β β βββ index.css # Global Tailwind styling
β βββ Dockerfile # Multi-stage Nginx production container
β βββ nginx.conf # Reverse proxy config (/api/* -> backend:3000)
β βββ vite.config.js
β
βββ extension/ # Chrome Extension (Manifest V3)
β βββ icons/ # High-res extension icons (16, 32, 48, 128 px)
β βββ background.js # Service worker (tab tracking & badge manager)
β βββ manifest.json # V3 extension manifest & permissions
β βββ popup.html # Extension popup markup
β βββ popup.css # Neo-brutalist styling
β βββ popup.js # Active-tab detection & scan controller
β
βββ docs/ # Academic Architecture & Threat Modeling Specs
β βββ THREAT_MODEL_STRIDE.md # STRIDE threat model & DREAD risk assessment
β βββ DATA_FLOW_DIAGRAM_UDF.md # Level 0/1/2 DFD & User Flow Diagrams
β βββ diagrams.html # Standalone interactive SVG diagram viewer
β
βββ docker-compose.yml # Unified container orchestration
βββ DOCKER.md # Docker deployment guide
βββ README.md # Repository master documentation
This project is developed for academic evaluation, research, and non-commercial security auditing purposes.
Licensed under the ISC License.