HTML beginner |
|
Hallo allemaal,
Ik zit hier te denken aan een mechanisme dat zou moeten vermijden dat men vanaf een andere website gegevens naar mijn webserver kan versturen. Iets wat de gegevens niet accepteert, zelfs al zijn de namen van de <input />-tags identiek aan hetgeen wat mijn script verwacht.
Het idee is als volgt (op iedere pagina wordt een session gestart):
In ieder formulier wordt een <input type="hidden" /> gestoken met als waarde de session_id(). Vervolgens wordt bovenaan in het script gecontroleerd:
if(!empty($_POST))
{
if(isset($_POST['session_id']))
{
if($_POST['session_id'] == session_id())
{
// Alles is goedgekeurd nu, de verzonden gegevens worden
// uit de $_POST-array gehaald.
}
else
{
// Afgekeurd.
}
}
else
{
// Afgekeurd.
}
}
Dus controleren of de verzonden session_id() gelijk is aan degene die er geset is. Men kan dan nog vanop een andere website gegevens verzenden, maar de kans is klein (of de kans is er niet?) dat die session_id gelijk gaat zijn aan degene die ze op mijn webserver krijgen, bijgevolg worden de verzonden gegevens niet geaccepteerd door het script.
Begrijpen jullie het gedacht een beetje?
Mijn vraag is nu: is deze controle overbodig? Kan je dit blokkeren van extern verzonden gegevens ook niet gewoon instellen op de webserver?
Bedankt voor alle reacties!
MVG, Kristof.
|