31 oktober 2007
Na meer dan vier jaar trouwe dienst is voor onbepaalde tijd het doek gevallen voor het Weird Hobbes-forum. Reden hiervoor is de immense hoeveelheid veiligheidslekken die de zelfgeschreven forum-software bevat. De berichten van het forum zijn bewaard gebleven en zijn op verzoek in te zien.
Historie en technische details
Het forum is omstreeks 2003 gebouwd. De scripttaal Perl was de enige programmeertaal die ik op dat moment beheerste. Het complete forum heb ik in één file geschreven. De berichten werden opgeslagen in een tekstbestand. Elke regel stelde een bericht voor. De eigenschappen van het berichten (zoals id, titel, auteur en inhoud) werden gesplitst door de karakterreeks #~#.
In de beginfase heeft het forum een aantal ingrijpende veranderingen ondergaan. Perl werd ingewisseld voor PHP. De berichten werden al snel opgeslagen in database opgeslagen; Eerst in een Access-database, later in een MySQL-database.
Modulariteit en veiligheid
Ook de PHP-variant van het forum bestond uit slechts één bestand. Tussen data, applicatielogica en presentatie werd geen onderscheid gemaakt. CSS werd amper gebruikt en de HTML was ondermaats.
Hoewel het forum uit meerdere logische onderdelen bestond is het niet modulair opgezet. Het inloggen, het forum en de polls werden in hetzelfde PHP-bestand afgehandeld. Naamgeving van functies en variabelen was niet consistent en pre- en postcondities ontbraken.
Het ergste is nog dat user input niet werd gecontroleerd. User input werd zonder enige vorm van controle in SQL-query's verwerkt. Dit had tot gevolg dat het forum vatbaar was voor SQL-injection. Bij het tonen van de berichten werden HTML-tags op gebrekkige wijze gecontroleerd waardoor het forum ook vatbaar was voor HTML-injection en cross site scripting.