📜 Table of Contents
Clean The Web is a modern cybersecurity Chrome extension and full-stack system that detects phishing, fake, and scam websites.
It uses real technical signals like SSL certificates, domain age, suspicious keywords, and crowdsourced reports to determine a website’s trust score — giving users an instant, clear verdict on site safety.
🚀 | Feature | Description |
---|---|---|
🧹 | Real-Time Site Check | Analyze current website instantly inside your browser |
🧠 | Smart Trust Score | Based on SSL, domain age, suspicious keywords, and user reports |
📈 | Trust Score Visualization | Animated circular indicator showing trust percentage |
📜 | Explanation Panel | Shows exactly why a site was rated Safe / Suspicious / Scam |
🔒 | Google Safe Browsing API | Real-time lookup of known phishing/malware URLs |
📢 | Crowdsourced Reporting | Users can report suspicious sites to strengthen the system |
🧩 | Full-Stack Backend | Node.js API with MongoDB database to handle reports and site data |
Technology | Usage |
---|---|
Chrome Extension APIs | Building the browser extension |
Node.js + Express.js | Backend server to process site checks |
MongoDB + Mongoose | Database to store site reports, domain metadata |
Axios | API communication with backend and WhoisXML |
WhoisXML API | Checking domain registration age |
Google Safe Browsing API | Real-time threat lookup for URLs |
Frontend (HTML/CSS/JavaScript) | Extension popup and dashboard UI |
(Future) Next.js | Public web dashboard (optional) |
The trustScore starts at 100 and is dynamically adjusted based on the following:
-
Start:
trustScore = 100 -
SSL Check:
❌ No SSL certificate →trustScore -= 40
-
Domain Age Check:
❌ Domain age < 6 months →trustScore -= 30
-
Suspicious Keywords Check:
❌ Domain contains suspicious words (login, verify, account, paypal) →trustScore -= 20
-
User Reports Check:
❌ Each report →trustScore -= 10
-
Clamp:
❌ If trustScore < 0 → Clamp to 0 -
Set Status:
- ✅
trustScore ≥ 80
→ Safe ⚠️ trustScore < 80 and ≥ 50
→ Suspicious- ❌
trustScore < 50
→ Scam
- ✅
Rating Guide:
- Safe: No major red flags—SSL valid, established domain, no reports, AND not flagged by Google Safe Browsing.
- Suspicious: Minor concerns (young domain, or one warning) but not outright malicious.
- Scam: Significant issues (multiple reports, or any Google Safe Browsing flag).
✅ TrustScore and Explanation are both displayed to the user for full transparency.
/extension
├── popup.html
├── popup.js
├── styles.css
├── icons/ (browser action icons)
/backend
├── server.js
├── routes/
│ └── siteRoutes.js
├── models/
│ └── Site.js
├── .env (Mongo URI + Whois API Key + Google Safe Browsing API Key)
/database
└── MongoDB Atlas (Cloud database)
Before getting started with Clean The Web, ensure your environment meets the following:
- Programming Language: JavaScript (Node.js)
- Package Manager: npm
- Database: MongoDB Atlas (or local MongoDB)
- Chrome Browser: For extension testing
Install Clean The Web using the following steps:
Build from source:
- Clone the repository:
git clone https://github.com/AlexanderPotiagalov/clean-the-web
- Navigate to the project directory:
cd backend
- Install backend dependencies:
npm install
- Create a
.env
file:
MONGO_URI=your-mongodb-connection-string
WHOIS_API_KEY=your-whoisxmlapi-key
SAFE_BROWSING_API_KEY=your-safebrowsingapi-key
- Start the server:
npm run dev
✅ Server will run at:
http://localhost:5000
- Open Chrome → Go to
chrome://extensions
- Enable Developer Mode (top right)
- Click Load Unpacked
- Select the
/extension
folder - 🎉 The extension is now active!
- 💬 Join the Discussions: Share your insights, provide feedback, or ask questions.
- 🐛 Report Issues: Submit bugs found or log feature requests.
- 💡 Submit Pull Requests: Review open PRs, and submit your own PRs.
Built by Alexander Potiagalov
Protecting users from online scams, one website at a time.