MiniJeffrey
Legacy Member
Hi all
Een simpel probleem:
Situatie simplistisch voorgesteld: Ik heb een website/tool waar je records in een database kan bewerken. Je krijgt dus een formulier via een webpagina en zodra je een button klikt wordt de wijziging weggeschreven. Dit gebeurt via ajax, je krijgt dus geen pagina load, alles gebeurt door javascript in de achtergrond door middel van een onclick="changeRecord(id)" op de button. javascript leest dan de nodige velden uit en stuurt de wijzigingen richting server die dan antwoordt met succes of niet.
Probleem: Zoals je ziet geef ik in de HTML aan de javascript call het ID mee van de record die gewijzigd moet worden. Nu, we kennen allemaal de fameuze 'inspect' manier in elke moderne browser waarmee je een hele pagina code en css kan editten. Het is dus ook heel eenvoudig om van dat ID een ander ID te maken en op die manier andere records te gaan bewerken dan diegene waarin je aan het werken bent. Op serverniveau zijn er de nodige controles (je moet ingelogd zijn, rechten hebben om records te mogen aanpassen, etc.), maar het is dus wel een security issue dat je die code zo makkelijk kan aanpassen en dus eig andere records kwaadwillig kan bewerken.
Vraag: hoe kan ik dit beveiligen? Client side heb je helemaal geen controle, dus is er uberhaupt een manier waarop je false requests kunt controleren?
Thx voor de feedback!
Een simpel probleem:
Situatie simplistisch voorgesteld: Ik heb een website/tool waar je records in een database kan bewerken. Je krijgt dus een formulier via een webpagina en zodra je een button klikt wordt de wijziging weggeschreven. Dit gebeurt via ajax, je krijgt dus geen pagina load, alles gebeurt door javascript in de achtergrond door middel van een onclick="changeRecord(id)" op de button. javascript leest dan de nodige velden uit en stuurt de wijzigingen richting server die dan antwoordt met succes of niet.
Probleem: Zoals je ziet geef ik in de HTML aan de javascript call het ID mee van de record die gewijzigd moet worden. Nu, we kennen allemaal de fameuze 'inspect' manier in elke moderne browser waarmee je een hele pagina code en css kan editten. Het is dus ook heel eenvoudig om van dat ID een ander ID te maken en op die manier andere records te gaan bewerken dan diegene waarin je aan het werken bent. Op serverniveau zijn er de nodige controles (je moet ingelogd zijn, rechten hebben om records te mogen aanpassen, etc.), maar het is dus wel een security issue dat je die code zo makkelijk kan aanpassen en dus eig andere records kwaadwillig kan bewerken.
Vraag: hoe kan ik dit beveiligen? Client side heb je helemaal geen controle, dus is er uberhaupt een manier waarop je false requests kunt controleren?
Thx voor de feedback!