Voor de website jongerenchat.nl heb ik onlangs Buddypress geïnstalleerd. Buddypress is een plugin die je helpt het het opbouwen en onderhouden van een online community. Buddypress verving voor deze website de profielensoftware van opensourcecms.eu. Deze profielensoftware wordt nog wel gebruikt op KinderChat. Beide chatsites gebruiken nu ook de chatsoftware van 123flashchat.com, dat was eerder CometChat. 123flashchat.com ondersteunt, in tegenstelling van wat de naam doet vermoeden, tegenwoordig ook html5.
Buddypress heeft veel opties en dat maakt het opbouwen van een community gemakkelijker. Het is software die veel gebruikt wordt, of eigenlijk is het natuurlijk WordPress dat veel gebruikt wordt. Het veelvuldig gebruik heeft zeker met het vrij beschikbaar zijn van de source ook nadelen. Na de installatie ontstond een ware stroom van ‘fake’ gebruikers.
Deze ongewenste registraties wil ik natuurlijk zo veel mogelijk voorkomen. Best Practices for Preventing BuddyPress Spam User Registrations geeft een mooie opsomming van de mogelijkheden hiervoor.
Het eerste wat ik aangepakt heb is het installeren van een Captcha. Binnen WordPress zijn diverse plugins beschikbaar die dit kunnen regelen. Niet alle Captcha zijn gratis, dat hoeft ook niet. Belangrijkste vond ik de gebruikersvriendelijkheid. Een voor de hand liggende optie leek bijvoorbeeld de BuddyPress reCAPTCHA plugin.
Deze plugin gebruikt de Google reCAPTCHA Service. Bijna iedereen kent deze Captcha-methode ondertussen, wat een belangrijk pluspunt had kunnen zijn. Persoonlijk vind ik deze Captcha’s eigenlijk altijd te ingewikkeld, en ik ben toch echt een mens. Er zijn altijd wel een paar letters die ik moeilijk kan lezen bovendien is de tekst die je moet intypen altijd vrij lang, voor ik begin met typen heb ik meestal al verschillende keren gerefreshed. Ik typ pas als ik alle lettters denk te herkennen en dan nog vaak heb ik het fout.
De Sweet Captcha plugin leek mij een leuk alternatief, niet te ingewikkeld en niet vervelend om uit te voeren. Na installatie bleek deze plugin echter niet te werken. De afbeeldingen werden niet getoond. Bovendien zorgen een andere bug er voor dat de captach ook bij het inlogformulier kwam te staan terwijl ik dit in de instellingen toch anders had ik ingesteld.
Het niet werken van de plugin gaf mij ook nog een ander probleem. Want om weer in te kunnen loggen in het WordPress dashboard moest ik nu ook zelf een captcha opgeven, ik had uitgelogd om het registeren te kunnen testen. Gezien er geen afbeelding was, kon ik dus niet meer inloggen.
Via Quickly Disable or Enable All WordPress Plugins via the Database kon ik achterhalen hoe ik de plugin via de database kon uitschakelen.
De string die in de database wordt opgeslagen onder active_plugins (tabel wp_options) ziet er ongeveer als volgt uit:
a:3:{i:0;s:13:"AddMySite.php";i:1;s:19:"akismet/akismet.php";i:2;s:23:"all_in_one_seo_pack.php"}
a:3 (een array) geeft het aantal plugins aan. i (int) is de index, die start bij 0. Na de index volgt de naam van de plugin, voorafgegaan door s:{getal}, waarbij s staat voor string en het getal aangeeft hoeveel letters de naam van de plugin telt. Naam is misschien niet helemaal juist gezegd, feitelijk is het een bestandsnaam van een php-file die bij de plugin behoort.
Om een plugin uit te schakelen, verwijder je de index en de string allebei. Zou ik bijvoorbeeld in het bovenstaande voorbeeld Akismet willen uitschakelen, dan verwijder ik het stukje i:1;s:19:"akismet/akismet.php";
Alle indeces na de verwijdering moeten hernummerd worden, ook de lengte van de array moet worden aangepast. Na het uitschakkelen van Akismet staat in het veld dus nog:
a:2:{i:0;s:13:"AddMySite.php";i:1;s:23:"all_in_one_seo_pack.php"}
Uiteindelijk is het dan de SI CAPTCHA Anti-Spam plugin geworden. Blijft jammer van die Sweet Captcha plugin, misschien later nog eens bekijken. Nu eerst maar eens zien hoe effectief SI CAPTCHA Anti-Spam is in het tegenhouden van al die spammers, bots en alle andere ongewenste gasten.
Ramon Fincken
Heel gevaarlijk, direct in serialized data zitten in je database.
Veel makkelijker is via FTP / hosting control panel de plugin map of file deleten OF hernoemen. WP Core ziet dan meteen dat de plugin niet meer op de map/path combi zit die bekend was en schakelt de plugin uit.
admin
@Ramon bedankt voor je opmerking. Ik vond het al een complexe oplossing. Verwijderen of hernoemen van de betreffende map is inderdaad een stuk gemakkelijker en veiliger.