PHP-beveiliging deel 1: InformatieverwerkingPHP is een krachtige scripttaal om internetsites mee te bouwen. Er zijn genoeg voorbeelden en instructiesites te vinden. Helaas kom ik regelmatig dezelfde beveiligingsrisico's tegen, meestal in een update-verslag van open source-software, maar ook vaak bij misbruik van kwetsbaarheden in zelfgemaakte code. In dit artikel wil ik je graag laten zien waar je op moet letten als je met PHP werkt of gaat werken. Er zijn servers te vinden waar GET-, POST- of SESSION-variabelen direct beschikbaar zijn. Deze manier van werken wordt al ruim 7 jaar afgeraden en de regel is dan ook dat je alle externe variabelen bewust hoort op te halen. Door aan het begin van je script alle externe variabelen op te halen kun je misbruik van interne variabelen voorkomen en werkt je code ook op servers met een hogere mate van beveiliging. Dit is een korte notatie om een variabele te vullen: Een beter beeld krijg je met een praktijkvoorbeeld: <?php ?> Met deze regel geven we de variabele $achternaam een waarde. Met de functie isset() kijken we of er een variabele $_GET['achternaam'] aanwezig is. Als die aanwezig is, dan wordt deze waarde gebruikt. Als de variabele niet aanwezig is, gebruiken we false (of een andere waarde naar keuze zoals '', 'naamloos' of 'onbekend'). Tip: controleer functies die je niet kent altijd op de PHP-site met als toevoeging de functienaam, bijvoorbeeld: http://nl.php.net/isset - er kunnen tips bij staan over gebruik, beveiliging of alternatieven voor wat je wilt bereiken met je script. Volgende keer zal ik dieper ingaan op de include-functie. Tot dan! |