Inspiration

Phishing links often use small tricks that are easy to miss, like hiding the real destination or using a raw IP address. For the "Build, Protect, Innovate" theme, I wanted to build something simple that helps people slow down and notice those signs before clicking.

What it does

LinkGuard is a Java console app. You paste in a URL, and it checks the text without ever opening the link:

  • HTTP instead of HTTPS: the connection isn't encrypted.
  • An @ before the host: browsers ignore everything before the @, so http://[email protected] really goes to 192.0.2.10. An @ in the path (like /@profile) is not flagged.
  • A numeric IP address as the host: real sites usually use names.

It explains every check, counts the warnings, and gives a caution level: 0 = LOW, 1 = MEDIUM, 2+ = HIGH. It also reminds the user that no warnings does not mean a link is safe.

How I built it

One Java file using Scanner for input, java.net.URI to split the URL into parts (scheme, authority, host, path) without connecting to anything, a separate boolean method for each check, and a while loop so you can check another URL or quit. I built it in Eclipse with Java 25.

Challenges I ran into

  • Figuring out where an @ is actually suspicious. Using URI let me look only at the authority part, not the whole URL.
  • Handling bad input: a URL with a space crashes new URI(), so I used try/catch to show a friendly message instead.
  • Setup issues under time pressure: running Terminal in the wrong folder, and fixing a wrong Git remote address.

What I learned

This project helped me understand the URI class and how to use it in a real program. I'd never thought about breaking a URL into parts and checking each one for security. I also got more comfortable with boolean methods, and learned what it's like to work under a deadline solo. This was my first hackathon.

What's next

More checks (look-alike domains like examp1e.test, shortened links, IPv6 addresses) and possibly a simple GUI.

AI use

I used Claude (by Anthropic) as a step-by-step mentor. It helped me choose the project idea, explained how java.net.URI works, and gave me small code snippets one step at a time. I typed, tested, and commented all the code myself, ran every test, and can explain every line.

Built With

Share this project:

Updates

Submission history