Wie mag wat: in je eigen project
In deze reeks zag je dat een verborgen knop geen slot is, dat de controle in het endpoint hoort, dat hij moet kijken naar wat de server weet, en dat elk endpoint er een nodig heeft. Loop je eigen project uit Jouw project daarop na.
Werk in je eigen project, niet in de map veiligheid-toegang. Test daarna met
je eigen server op 127.0.0.1.
Opdracht
Opdracht 1: Make - In je eigen project
Loop in je eigen project elk endpoint langs dat iets verandert of verwijdert. Zorg dat elk ervan zelf controleert of de bezoeker het mag.
Tip
Zoek naar @app.post en @app.delete. Kan iedereen iets toevoegen, zoals een
bericht in een gastenboek, dan is dat een bewuste keuze. Maar verwijderen of
aanpassen hoort alleen bij de eigenaar.
Antwoord
Loop deze lijst af:
- Elk endpoint dat verwijdert of aanpast, haalt de sessie op met
sessie_id: str = Cookie(default=""). - De controle staat vóór het verwijderen of aanpassen, en stuurt anders een
403. - Je controleert op wat de server zelf weet, zoals de sleutels in de sessie, niet op een naam uit het formulier.
- Een verborgen knop is een hulp, geen slot: het endpoint controleert toch.
Heb je in Sessies
opdracht 5 gemaakt, dan heeft /verwijderen deze controle al. Kijk of elk
ander endpoint dat iets verandert, hem ook heeft.
Door naar les 6: in de praktijk.