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

  1. 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.
  2. Rule-based checks: quick red flags such as lookalike domains (e.g. paypa1.com).
  3. Machine learning model: a Random Forest classifier trained on a public phishing URL dataset.
  4. 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

Share this project:

Updates

posted an update —

I independently designed and built PhishShield end to end. My work included: researching phishing attack patterns, collecting and cleaning a public phishing URL dataset, extracting URL features (length, IP address, "@" symbol, HTTPS, suspicious keywords), training and testing a Random Forest model with scikit-learn, building the Flask web interface, writing the rule-based checks and plain-language explanations, and recording the demo video.

Log in or sign up for Devpost to join the conversation.

Submission history