Regnery.net Internet

HTML CSS PHP MYSQL JQuery SEO – internetoplossingen

PHP GET method

Via PHP kun je variabelen doorgeven tussen verschillende pagina’s. Een manier om dit te doen is via de GET methode. Zolang je in het achterhoofd houdt wat de GET methode doet, is deze manier niet onveiliger dan de POST method. Gebruik je de GET method verkeerd, dan geef je hackers vrij spel op jouw site.

GET method uitleg

Als je een link maakt zoals index.php?id=12 dan is het cijfer 12 de variabele waar jij iets mee wilt doen. Dit is bijvoorbeeld een unieke index uit je database waarmee je een artikel laat zien. Je site moet iets doen met dit cijfer. Als je de GET methode gebruikt, verstuur je deze variabele via je url. Iedere bezoeker kan deze url lezen. Het is dus geen “geheime” informatie.

[ad]

Via de volgende code kun je de informatie uit de url halen en vervolgens gebruiken op je site:

<?php
if (!empty($_GET['id'])) {
$variabel = $_GET['id'];
echo $variabel;
} else {
?>
<form method="get" action="">
Naam: <br /><input type="text" name="id" /><br />
<input type="submit" name="submit" value="verzenden" />
</form>
<?php } ?>

Met bovenstaande code kun je alle soorten teksten en codes doorgeven binnen je site. Hiermee geef je iedere hacker een vrijbrief jouw site te kraken. Kortom, werk aan de winkel.

FILTER_VAR functie

Een manier om je variabelen te controleren is door de functie FILTER_VAR(); te gebruiken. Met deze functie kun je de inhoud van de variabele op bepaalde randvoorwaarden controleren. In deze context kun je er vanuit gaan dat er alleen cijfers zijn toegestaan als waarde en verder niets.

$variabel = $_GET['id']; 
$variabel = filter_var($variabel, FILTER_VALIDATE_INT);
echo $variabel;

Via bovenstaande code controleer je of de doorgeven variabele inderdaad een getal is. Alleen als het een getal is, sta je vervolgens toe de rest van de site uit te voeren. Door een if(filter_var($variabel, FILTER_VALIDATE_INT) == true){…} else { header(“location: test.php”); exit();} in te bouwen, kun je het script verder uitbreiden.

Filter_input functie

Een andere manier om de variabelen te controleren is de functie filter_input(); waarmee je de variabelen binnenhaalt.

$variabel = filter_input(INPUT_GET, 'id', FILTER_VALIDATE_INT);
if ($variabel == TRUE) { OK } else ( BREEK AF}

Met deze functie maak je niet langer gebruik van de $_GET['id'] manier om de variabele op te halen, maar plaats je direct een functie om de variabele binnen te halen en te controleren.

Let op dat je in dit script wel alle variabelen checkt! Er is nog steeds een submit value waarmee je nog niets hebt gedaan. Vervang in je script de value=”Verzend” eens door de volgende regel:

value="<script>alert:hello</script>"

Als je Internet Explorer gebruikt, zal deze een foutmeldig geven en zeggen dat de browser een poging tot XSS heeft voorkomen. Maar niet iedere browser kan dit. Daarom moet je als website bouwer altijd zelf de veiligheid hoog in het vaandel houden en zelf je variabelen steeds schoonmaken!!!