Inspiration
Phishing is the most common cyber attack in the world. Fake bank, UPI, and delivery-scam links trick students, parents, and elders every day. I wanted a simple tool anyone can use to check a link before clicking it.
What it does
PhishShield takes a URL, analyses it, and returns a verdict (Safe / Suspicious / Phishing) along with a plain-language explanation of why.
How I built it
- Feature extraction: URL length, number of dots and hyphens, "@" symbol, IP address instead of a domain, HTTPS usage, suspicious keywords (login, verify, update), and domain age.
- Rule-based checks: quick red flags such as lookalike domains (e.g.
paypa1.com). - Machine learning model: a Random Forest classifier trained on a public phishing URL dataset.
- Web interface: a simple Flask app where the user pastes a link and gets an instant result.
Challenges I faced
- Finding a clean, balanced dataset
- Reducing false positives on legitimate long URLs
- Explaining the result in simple language for non-technical users
What I learned
- How phishing attacks are structured
- Feature engineering for security data
- Building and deploying a small ML-powered web app
What's next
- A browser extension for real-time warnings
- Tamil and other regional-language alerts
- QR-code scanning to catch "quishing"
Built With
- bootstrap
- css3
- cybersecurity
- flask
- git
- github
- html5
- javascript
- joblib
- jupyter-notebook
- machine-learning
- matplotlib
- numpy
- pandas
- phishing-detection
- python
- python-whois
- random-forest
- regex
- requests
- rest-api
- scikit-learn
- tldextract
- vs-code
Log in or sign up for Devpost to join the conversation.