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@, sohttp://[email protected]really goes to192.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. UsingURIlet me look only at the authority part, not the whole URL. - Handling bad input: a URL with a space crashes
new URI(), so I usedtry/catchto 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
- claude
- eclipse-mc
- java