How chaithanyabs441-ux/phishing-website-detector works
PhishReaper is a phishing-URL triage service backed by a reproducible classical-ML research pipeline. The deployed flow accepts a URL and optional uploaded HTML, extracts URL/HTML features, scores with a calibrated CatBoost model or URL-SVM fallback, and can override the verdict on a Safe Browsing threat match. A separate offline workflow downloads data, creates leakage-controlled splits, builds features, compares models, and calibrates thresholds. Serving relationships are supported by the app excerpt and SOURCE INDEX; broader research-stage links follow the README, since several evaluation modules were not sampled.
Main entry points: app.py Scan API · phase4_boosting.py Tree tuning · url_features.py URL features · phase4_data.py Training data
Components 20
Online triage
- Scan API
webapp/app.py - Request guards
src/serving/request_security.py - Safe HTML fetch
src/serving/safe_fetch.py - Model registry
src/serving/model_registry.py - Triage verdict
webapp/app.py
Feature extraction
- URL features
src/features/url_features.py - HTML features
src/features/html_features_v2.py
Model research
- Dataset download
src/data/download_dataset.py - Blocked splits
src/evaluation/create_blocked_splits.py - HTML feature cache
src/evaluation/build_html_features_v2_cache.py - Training data
src/evaluation/phase4_data.py - SVM baselines
src/evaluation/evaluate_svm_blocked.py - Tree tuning
src/evaluation/phase4_boosting.py - Text models
src/evaluation/phase5_text.py - OOF stacking
src/evaluation/phase6_stacking.py - Calibration
src/evaluation/phase7_calibration.py - Benchmark evaluation
src/evaluation/evaluate_url_html_official.py
Threat intelligence
- Safe Browsing lookup
src/reputation/google_safe_browsing.py
Other components
- Analyst
- Google Safe Browsing
Connections 23
- Analyst → Scan API: submits scan
README.md - Scan API → Request guards: validates request
webapp/app.py - Scan API → Safe HTML fetch: optionally fetches
webapp/app.py - Scan API → URL features: extracts features
webapp/app.py - Scan API → HTML features: parses HTML
webapp/app.py - Scan API → Model registry: requests prediction
webapp/app.py - Model registry → Triage verdict: returns model score
README.md - Scan API → Safe Browsing lookup: checks URL
webapp/app.py - Safe Browsing lookup → Google Safe Browsing: queries threat list
src/reputation/google_safe_browsing.py - Scan API → Triage verdict: renders triage
README.md - Triage verdict → Analyst: presents signal
README.md - Dataset download → Blocked splits: provides shards
README.md - Blocked splits → SVM baselines: defines holdout
README.md - HTML feature cache → Training data: supplies HTML cache
src/evaluation/phase4_data.py - URL features → Training data: computes URL inputs
src/evaluation/phase4_data.py - Training data → Tree tuning: loads model data
src/evaluation/phase4_data.py - SVM baselines → Text models: baseline comparison
README.md - Tree tuning → Text models: model comparison
README.md - Text models → OOF stacking: provides stack inputs
README.md - OOF stacking → Calibration: provides OOF scores
README.md - Tree tuning → Calibration: selects finalist
README.md - Benchmark evaluation → URL features: uses shared features
src/evaluation/evaluate_url_html_official.py - Benchmark evaluation → HTML features: uses HTML features
src/evaluation/evaluate_url_html_official.py