Beveiligen GET variabelen
Hallo allemaal,
Is er iemand die misschien een paar tips heeft voor het beveiligen van de gegevens in de url.
Ik heb een berichten systeempje gemaakt die de berichten ophaalt op basis van de gegevens in de url.
De url ziet er dan bijvoorbeeld zo uit. "http://www.website.nl/bekijkbericht.php?UNIQ=47148086&to=20&van=20".
als ik nou de gegevens in die url handmatig zou wijzigen bijvoorbeeld de cijfers van UNIQ. dan zou ik een ander gesprek te zien krijgen, wat niet de bedoeling is.
Heeft iemand tips voor mij hoe ik dit zou kunnen beveiligen ?
Is er iemand die misschien een paar tips heeft voor het beveiligen van de gegevens in de url.
Ik heb een berichten systeempje gemaakt die de berichten ophaalt op basis van de gegevens in de url.
De url ziet er dan bijvoorbeeld zo uit. "http://www.website.nl/bekijkbericht.php?UNIQ=47148086&to=20&van=20".
als ik nou de gegevens in die url handmatig zou wijzigen bijvoorbeeld de cijfers van UNIQ. dan zou ik een ander gesprek te zien krijgen, wat niet de bedoeling is.
Heeft iemand tips voor mij hoe ik dit zou kunnen beveiligen ?
Controleren of het ID van de gebruikers klopt?
bekijkbericht.php moet altijd controleren of het opgevraagde bericht wel aan diegene die ingelogd is getoond mag worden.
"http://www.website.nl/bekijkbericht.php?UNIQ=47148086&to=20&van=20".
"to" is het user id van de de gebruiker, die zit ook in een sessie opgeslagen.. dus dan gewoon een check doen of "to" overeenkomt met de sessie.
"to" is het user id van de de gebruiker, die zit ook in een sessie opgeslagen.. dus dan gewoon een check doen of "to" overeenkomt met de sessie.
De URL is niet de plek om dit probleem op te lossen.
Maak gebruik van sessies als drager van informatie om te onthouden dat is vastgesteld dat iemand daadwerkelijk de persoon is die hij/zij zegt te zijn.
Met andere worden schrijf een stuk functionaliteit om personen te registeren en in te loggen.
Controleer vervolgens in dit script enkel die dingen die er toe doen.
Ik zou als GET variabele enkel een bericht id verwachten, bijvoorbeeld:
bekijkbericht.php?id=12
Het script kijkt vervolgens met behulp van het user id van een eerder geauthenticeerde gebruiker in de sessie of de verzender of ontvanger deze gebruiker is, en anders wordt het bericht gewoonweg niet getoond.
Maak gebruik van sessies als drager van informatie om te onthouden dat is vastgesteld dat iemand daadwerkelijk de persoon is die hij/zij zegt te zijn.
Met andere worden schrijf een stuk functionaliteit om personen te registeren en in te loggen.
Controleer vervolgens in dit script enkel die dingen die er toe doen.
Ik zou als GET variabele enkel een bericht id verwachten, bijvoorbeeld:
bekijkbericht.php?id=12
Het script kijkt vervolgens met behulp van het user id van een eerder geauthenticeerde gebruiker in de sessie of de verzender of ontvanger deze gebruiker is, en anders wordt het bericht gewoonweg niet getoond.
oke, ik zal er nog eens goed naar kijken ik denk dat het wel moet lukken.
Maar als het nou niet om een berichten systeem gaat maar om bijvoorbeeld wat algemenere informatie.
een pagina met een x aantal personen met achter elke naam een button met "Informatie" als je daar op klikt krijg je de info van de betrefende gebruiker
http://www.website.nl/informatie.php?id=466 als ik op die pagina ben en de info wordt getoond en dan 466 verander naar 470 dan krijg ik ook de informatie te zien van de gebruiker met userid 470.. hoe zou je dat kunnen voorkomen ?
Maar als het nou niet om een berichten systeem gaat maar om bijvoorbeeld wat algemenere informatie.
een pagina met een x aantal personen met achter elke naam een button met "Informatie" als je daar op klikt krijg je de info van de betrefende gebruiker
http://www.website.nl/informatie.php?id=466 als ik op die pagina ben en de info wordt getoond en dan 466 verander naar 470 dan krijg ik ook de informatie te zien van de gebruiker met userid 470.. hoe zou je dat kunnen voorkomen ?
Controleren of het userID uit de URL gelijk is met diegene die in is gelogd. Zo niet, dan toon je een foutmelding.
oke, bedankt voor de info!
Gewoon uit nieuwsgierigheid, waarom zou je informatie.php op de ID willen beveiligen ?
Handmatig veranderen van je URL is hetzelfde als op de "Informatie" button te klikken.
Handmatig veranderen van je URL is hetzelfde als op de "Informatie" button te klikken.
ja dat is eigenlijk ook niet echt nodig indd..
Wouter van op 05/02/2015 17:28:43:
http://www.website.nl/informatie.php?id=466 als ik op die pagina ben en de info wordt getoond en dan 466 verander naar 470 dan krijg ik ook de informatie te zien van de gebruiker met userid 470.. hoe zou je dat kunnen voorkomen ?
Deze informatie hoef je niet in je URL te stoppen, want deze zou al in jouw sessie moeten zitten als jij de enige bent die bepaalde informatie in kan zien of mag wijzigen.
profiel.php?id=12 lijkt me wel zinnig, als je het profiel van persoon 12 wilt (en mag) inzien.
profiel_wijzigen.php?id=12 lijkt mij onzinnig als jij user 12 niet bent... tenzij jij een superadmin bent, die ALLE profielen mag wijzigen.
Dit zou je aan de hand van zelf opgestelde rollen en rechten kunnen bepalen.
Gewijzigd op 05/02/2015 20:39:31 door Thomas van den Heuvel




