PHP Security

Ik werd vandaag getriggerd door een bericht wat ik las over het valideren van user input… Ik ben van nature geen programmeur en doe het er dus maar ‘een beetje bij’ ook al bouw ik al 15 jaar zo af en toe software in verschillende talen. Ik was echter altijd een beetje huiverig voor het bouwen van web applicaties niet zozeer vanwege mijn programmeer vaardigheden maar vooral vanwege security. Het bouwen van veilige web applicaties is een aparte tak van sport die niet iedereen beheerst.

Je kan genoeg voorbeelden van source code vinden op het internet maar niet alles is even veilig. Er is potentieel veel risico zoals het veilig houden van je sessies, het checken van je user input, cross-site scripting (XSS) attacks, Cross-site request forgeries (CSRF), session fixation en ga zo maar verder. Er is potentieel zoveel risico dat je er bijna moedeloos van zou worden als beginnend PHP programmeur (mits je de risico’s onderkend althans).

Ik besloot daarom tot het volgen van een PHP programmeer cursus. Na wat rond gevraagd te hebben was de gemiddelde tip om een cursus te volgen bij Zend, het brein achter PHP. Nou heb ik niet zo gek veel gehad aan de cursus an sich behalve wellicht dat mijn basis kennis in orde was en daarnaast wat andere kleine dingen. Overigens dat ik er niet zoveel aan heb gehad betekent niet dat het totaal waardeloze cursussen zijn. Als je weinig tot niks weet van programmeren en nog weinig kaas hebt gegeten van variabelen, arrays, multidimentionale arrays dan is de cursus nuttig.

Naast bevestiging dat mijn basis kennis in orde was heeft het nog meer opgeleverd namelijk meer hints richting PHP Security (een cursus die Zend overigens zelf ook geeft maar die ik nog niet gevolgd heb). Maar ook naar andere nuttige sites en boeken.

Een van de tips die bijvoorbeeld de cursus leider gaf was om te kijken bij de tutorials van Chris Shiflett, en ook al zijn een groot aantal tutorials al wat ouder als je op volgt wat er in staat blijven ze nog steeds nuttig. Verwacht geen complete stukjes code maar met de snippets die hij geeft kun je langzaam aan een gevoel voor veiligheid ontwikkelen.

Zo behandeld hij bijvoorbeeld het nut van tokens tegen CSRF en heeft hij goede tips over hoe je kan omgaan binnen de code met de input variabelen en het scheiden van vuile (nog niet geschoonde) input variabelen en input die geschoond (en dus in theorie veilig) is. En als je die tips consequent verwerkt in het bouwen van je web applicatie blijkt opeens dat je niet bang hoeft te zijn voor het schrijven van veilige code. Al moet je natuurlijk nog steeds wel alert blijven op onveilige code… 1 regel aan code kan je hele applicatie onveilig maken tenslotte.

Chris is daarnaast auteur van het boek Essential PHP Security, wat een nuttig boek is om te hebben in je boekenkast als je veiligheid serieus neemt. Er staan ook een aantal hoofdstukken online die gratis in te zien zijn. Als je deze hoofdstukken en alle tutorials hebt gelezen dan ben je overigens al behoorlijk op de hoogte van wat er zoal in het boek staat. Maar het is sowieso een nuttig naslag werk.

Evengoed blijft het oppassen dat je niet zomaar klakkeloos overneemt wat er op het internet te vinden is omdat er genoeg tutorials te vinden zijn die slecht zijn of zelfs soms ronduit onveilig.

U kunt reacties op dit bericht volgen via de RSS 2.0 feed. U kunt een bericht achterlaten, of een trackback geven op uw eigen site.

1 reactie »

 
 

Geef een reactie

XHTML: Je kunt deze tags gebruiken <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>