Via WordPress.org kan je de gratis plugin Woody code snippets installeren. Met deze gebruiksvriendelijke plugin kan je PHP scripts toevoegen via de wp-admin omgeving van jouw website.
Het idee achter de plugin is om mensen met weinig PHP programmeer ervaring de mogelijkheid te bieden om simpele scripts toe te voegen. Deze scripts worden ook wel snippets genoemd. Deze kunnen gebruikt worden via de shortcode functionaliteit van WordPress: [jouw_shortcode].
Belangrijk:
Woody code snippets is een van de vele plugins waarmee je via de wp-admin omgeving PHP code toe kan voegen aan jouw website. Gebruik je een andere plugin? Dan gelden onderstaande nadelen mogelijk daar ook voor.
Nadeel 1, geen veilige code
Met deze plugin kan je ieder PHP script dat je op internet vindt met een paar klikken toevoegen via de wp-admin omgeving. Ik zie snippets voorbij komen in de Woody code snippets plugin die niet veilig zijn. Soms zelfs scripts waarvan de eigenaar niet weet wat het doet, waarom het er staat en of dat het nog nodig is.
Snippets worden vaak heel compact gehouden en escaping of sanitization worden dan gauw overgeslagen.
Ik snap dat website beheerders met weinig tot geen PHP programmeer ervaring zo minder afhankelijk zijn van echte programmeurs of bedrijven. Maar programmeren is niet voor niets een opleiding op school of een dagelijks beroep.
Nadeel 2, hacker krijgt meer mogelijkheden
Als jij als beheerder PHP scripts toe kan voegen dan kan een hacker met toegang tot jouw website dit ook. Deze kan dan kwaadaardige PHP scripts toevoegen, bestaande functionaliteit aanpassen of eigen plugins installeren.
Een terechte opmerking is dan dat als een hacker toegang heeft tot de wp-admin omgeving deze toch al andere plugins kan installeren. Dit klopt, maar een hacker heeft niet altijd voldoende toegang zodat er plugins geïnstalleerd kunnen worden. Soms komt de hacker binnen via een lek in plugin A waardoor hij PHP code toe kan voegen aan de Woody code snippets plugin die we in dit verhaal plugin B noemen.
Houd er rekening mee dat een hacker dagen of weken geleden zijn eigen code toe kan voegen zonder dat jij het merkt. Ik heb dit in de praktijk al bij diverse websites gezien. Hoe meer plugins je gebruikt hoe groter de kans op een beveiligingslek.
Conclusie
De websites die ik ontwikkel gebruiken deze plugin niet. De benodigde PHP scripts worden door mij toegevoegd als nieuwe plugin of aan het child thema. Er wordt specifiek gelet op beveiliging en overbodige functionaliteit wordt verwijderd.
WordPress zelf biedt standaard ook de optie om de PHP, CSS en JS bestanden van het thema te wijzigen via de wp-admin omgeving. Handig maar ook onveilig. Deze schakel ik daarom uit door onderstaande regel aan het wp-config.php bestand toe te voegen.
define('DISALLOW_FILE_EDIT', true);
Woody code snippets migreren naar thema functions.php
Ik snap dat beheerders graag gebruik maken van deze plugin, de 80.000 installaties bewijzen dit ook. Maar aan het gemak zitten dus wel wat nadelen. In veel gevallen gaat het om snippets die je eenmalig toevoegt. Die kan je ook migreren naar het functions.php bestand van jouw child thema.
Gebruik je nog geen child thema dan kan je het ook migreren naar een dropin plugin. Voor een voorbeeld kan je dit blog bezoeken.
Stap 1:
Kopieer onderstaande code naar jouw functions.php bestand:
function childtheme_jouw_functie($params) { hier jouw code } add_shortcode( 'jouw_shortcode', 'childtheme_jouw_functie' );
Stap 2:
Verplaats de code uit Woody code snippets naar “hier jouw code” in childtheme_jouw_functie(). Bedenk wel een beschrijvende naam voor de functie.
Stap 3:
De oude shortcode [wbr….] kan je vervolgens vervangen met [jouw_shortcode].
Heb je alle snippets verplaatst? Dan kan je de plugin verwijderen. Dit maakt jouw website veiliger en sneller omdat de plugin niet meer ingeladen hoeft te worden.
Belangrijk:
Het eerste nadeel blijft nog wel bestaan. Als je willekeurige PHP code van internet toevoegt aan jouw website kan dit alsnog een beveiligingslek veroorzaken. Laat bij twijfel de code door een programmeur controleren.