_Nicely done! Level 3: Social Network is complete. It's time for Level 4: Database. :partyingface:
📝 Storyline
Databases are essential for our applications. However, malicious actors only need one entry point to exploit a database, so defenders must continuously protect all entry points. Can you secure them all?
:keyboard: What's in the repo?
For each level, you will find the same file structure:
code includes the vulnerable code to be reviewed
hack exploits the vulnerabilities in code. Running hack.py will fail initially, your goal is to get this file to pass.
hint offers a hint if you get stuck.
solution provides one working solution. There are several possible solutions.
tests contains the unit tests that should still pass after you have implemented your fix.
Level 4: Data Bank
_Nicely done! Level 3: Social Network is complete. It's time for Level 4: Database. :partyingface:
📝 Storyline
Databases are essential for our applications. However, malicious actors only need one entry point to exploit a database, so defenders must continuously protect all entry points. Can you secure them all?
:keyboard: What's in the repo?
For each level, you will find the same file structure:
code
includes the vulnerable code to be reviewedhack
exploits the vulnerabilities incode
. Runninghack.py
will fail initially, your goal is to get this file to pass.hint
offers a hint if you get stuck.solution
provides one working solution. There are several possible solutions.tests
contains the unit tests that should still pass after you have implemented your fix.:keyboard: Setup instructions
For Levels 3-5, we encourage you to enable code scanning with CodeQL. For more information about CodeQL, see "About CodeQL." For instructions setting up code scanning, see "Setting up code scanning using starter workflows."
🚦 Time to start!
code.py
. Can you spot the bugs?main
or push your fix to a branch.