

0 / 2 embers
0 / 3000 xp
click for more info
Complete a lesson to start your streak
click for more info
Still calibrating
click for more info
Not enough gems
Cost: 6 gems
1: Web Security in TypeScript
incomplete
2: Why Web Security
incomplete
3: Security Consequences
incomplete
4: OWASP Top 10
incomplete
5: How Attackers Think
incomplete
6: OWASP Quiz
incomplete
Back
ctrl+,
Next
ctrl+.
This lesson's interactive features are locked, please to keep using them
OWASP (the Open Worldwide Application Security Project) publishes a new list of critical web application security risks every few years. The OWASP Top 10:2025 combines contributed application-testing data with a survey of security practitioners. It's based on real-world data!
The Top 10 is a great starting point, but it's not a complete security checklist.
Click to play video
Here are the current categories:
You do not need to memorize this list. You do need to know where to find it and how to use it as a guide for identifying potential issues in your application.
Missing browser security headers are a concrete example of A02: Security Misconfiguration. One of the simplest headers to add is X-Content-Type-Options: nosniff.
This header tells browsers to respect a response's declared Content-Type instead of guessing from its contents.
This helps prevent security vulnerabilities related to MIME sniffing. For example, without nosniff, a browser might treat attacker-controlled content as executable code despite its declared type!
Bearly Secure does not currently send the X-Content-Type-Options header. Set X-Content-Type-Options: nosniff on every Bearly Secure response.
npm run dev
curl -I http://localhost:3000/
curl -I http://localhost:3000/styles.css
Leave the app running, then run and submit the CLI checks from another terminal.