cd "Phishing Detector Project\server"
npm install
npm start- Wait for: "Reputation loaded: X URLs from OpenPhish"
- API runs at
http://localhost:3000
cd "Phishing Detector Project"
python -m http.server 8000- Open:
http://localhost:8000/phishing.html
- Click "Load: Urgent account reset" → "Scan"
- Should show "Analysis via server" with risk score and reasons
Phishing Detector Project/
├── phishing.html # Main frontend interface
├── server/ # Backend API server
│ ├── index.js # Main server file with detection logic
│ ├── package.json # Node.js dependencies
│ └── node_modules/ # Installed packages
├── Phishing_Detector_Documentation.md # Complete technical documentation
└── README_Phishing_Detector.md # Detailed setup and usage guide
- 9 Rule-Based Heuristics: Detects urgency, credentials, payment requests, etc.
- 7 URL Analysis Rules: Checks TLDs, obfuscation, lookalikes, etc.
- Real-time Reputation: OpenPhish feed integration
- Explainable AI: Shows exactly why content was flagged
- Responsive Design: Works on mobile and desktop
- Graceful Fallback: Works even if backend is down
| Rule | Score | Purpose |
|---|---|---|
| Urgency | +15 | "urgent", "24 hours", "suspended" |
| Credentials | +20 | "verify account", "reset password" |
| Payment | +20 | "gift card", "wire transfer", "SSN" |
| Loan Bait | +12 | "instant loan", "pre-approved" |
| UPI/KYC/OTP | +10 | Indian SMS scam markers |
| Generic Greeting | +8 | "Dear customer" instead of real name |
| Attachments | +12 | ".zip", ".exe", "attached file" |
| Brand Spoofing | +8 | "Microsoft", "PayPal", "Google" |
| Spelling Errors | +6 | "acount", "veriffy", "recieve" |
- 🟢 Low Risk: 0-29 points
- 🟡 Medium Risk: 30-59 points
- 🔴 High Risk: 60+ points
- Complete Documentation:
Phishing_Detector_Documentation.md - Setup Guide:
README_Phishing_Detector.md - API Reference: See documentation for endpoint details
- Edit
server/index.js - Add regex pattern and scoring logic
- Restart backend:
npm start - Test with sample cases
- Modify detection rules in
evaluateMessage()andevaluateUrl() - Add new reputation feeds in
refreshOpenPhish() - Update UI styling in
phishing.html
- Backend:
http://localhost:3000 - Frontend:
http://localhost:8000/phishing.html
- Deploy backend to Node.js hosting (Heroku, Railway, etc.)
- Deploy frontend to static hosting (Netlify, Vercel, etc.)
- Update API_URL in frontend code
For technical issues or questions:
- Check the complete documentation
- Verify backend is running:
http://localhost:3000/health - Check browser console for errors
- Ensure all dependencies are installed
Built with ❤️ for cybersecurity education and protection