Zorgeloos met automatische plugin-updates voor WordPress. Werkt dat?

Florian Simeth Laatst bijgewerkt op 26.02.2021
8 Min.
auto plugin updates
Laatst bijgewerkt op 26.02.2021

De automatische updates voor kleine versies van WordPress hebben zich al jaren bewezen. Maar werkt het ook met Plugins? Deze vraag is onderzocht door WordPress ontwikkelaar Florian Simeth en heeft nuttige tips van beveiliging en onderhoud expert Marc Nilius in zijn analyse.

Iedereen die WordPress al een tijdje gebruikt, weet dat de automatische updates van de kernsoftware vrij goed werken en meestal zonder problemen. Als er niet de Plugins was. Typisch is dat de gedachte aan automatische Plugin updates de haren in de nek van de meeste website-beheerders overeind doet staan. Iedereen die wel eens op zijn tanden heeft getrapt voordat hij op de update knop drukte weet waar ik het over heb.

Je weet nooit zeker of de updates goed worden doorgevoerd. Zelfs als de update zelf niet mislukt, maar de fouten ergens - niet zichtbaar - ondergronds op de loer liggen. De meeste collega's die ik heb ondervraagd, zouden geen automatische Plugin-updates uitvoeren, althans niet voor alle Plugins. Maar waarom is dat eigenlijk zo?

Wanneer automatische Plugin updates risico's met zich meebrengen

658 vrijwilligers hebben bijgedragen aan versie 5.3 van WordPress . Niet elk Plugin project heeft deze man (en vrouw) macht. Het merendeel van de gratis Plugins in de WordPress -Plugin directory is ontwikkeld door slechts één persoon (of misschien een klein team). Dit wil niet zeggen dat deze Plugins per se slecht zijn. Uit het verleden weten we echter dat het meestal de Plugins zijn die veiligheidslekken openen, waardoor hun eigen WordPress instantie een doelwit voor hackers wordt.

Er kan dus worden aangenomen dat de kwaliteit van de code te lijden heeft of te weinig wordt getest. Waarom dit zo is, wil ik nu niet langer uitleggen. Maar het verklaart waarom we snel op de update knop klikken voor bekende Plugins zoals YoastSEO en liever niet voor anderen.

"In principe kun je probleemgevallen herkennen aan het feit dat er al eerder iets fout is gegaan," schreef Marc Nilius mij in een e-mail interview. Volgens zijn eigen informatie onderhoudt hij momenteel ongeveer 200 WordPress instanties en kent hij zijn "Pappenheimer" maar al te goed. Nu heeft Yoast zeker een groot team achter zijn eigen gratis YoastSEO-Plugin, die actief is op meer dan vijf miljoen WordPress sites. Voor het vlaggenschip van het bedrijf, doet het er alles aan om te zorgen dat er niets mis gaat. Dat komt met inspanning. Een inspanning die een ontwikkelaar alleen misschien niet aankan of niet wil doen. Dus wat kan er gedaan worden?

Manieren om risico's te minimaliseren via Plugins

1. gebruik geen oude Plugins

"Democratizing Publishing" is een duidelijke leidraad voor WordPress . Het feit dat iedereen even snel een WordPress site kan opzetten is een briljante zaak, maar leidt er automatisch toe dat die mensen op een gegeven moment de site willen uitbreiden. En ze doen dat met Plugins. Aangezien zij meestal niet zelf kunnen programmeren, zoeken zij op het eeuwige WorldWideWeb naar een remedie. En er zijn er genoeg. 

Momenteel zijn er alleen al in de Plugin directory bijna 55.000 extensies. Wat werkt wordt gebruikt. Zonder erop te letten of de Plugin verder wordt ontwikkeld of compatibel is met de huidige WordPress versie. Dit is niet altijd waar en leidt uiteindelijk vaak tot een gezond wantrouwen tegenover updates. Want vaak stopt zo'n Plugins op een gegeven moment met werken. Ook al kan dit een paar jaar duren.

Natuurlijk zijn er ook positieve voorbeelden. Bijvoorbeeld, er is een groot bedrijf achter WooSidebars. Toch is de Plugin al een jaar lang niet meer bijgewerkt. Het is niet getest met de laatste WordPress versies, maar werkt in veel gevallen nog prima. Hoe lang nog? De eerste opmerkingen in de steunzone wijzen al op een einde. Maar de gebruiker merkt er niets van. Tijdens de installatie is dit gebrek slechts een kleine, onopvallende aanwijzing. Een gevaarlijk ding.

woosidebars

Natuurlijk, als je begint met je carrière als blogger, heb je vaak geen geld voor ontwikkeling op maat. Voor deze mensen is er geen ander alternatief. Niettemin mag niet uit het oog worden verloren dat - wegens de bovenvermelde veiligheidsrisico's - zo weinig mogelijk (oude) Plugins moeten worden gebruikt.

2. Plugins stel jezelf niet aan

Om ontwikkelingstijd te besparen, worden zowel officiële als onofficiële Plugins vaak eenvoudigweg aangepast door eigen ontwikkelaars. Als het versienummer of de naam van de Plugins niet is gewijzigd, biedt WordPress een update aan, hoewel deze misschien niet wordt uitgevoerd omdat anders de eigen wijzigingen worden overschreven.

"Aangepaste Plugins hangt vaak te veel af van Theme functionaliteiten", weet ook Marc. Als er iets verandert in de Theme, loopt de Plugin niet meer correct. Dus er zijn veel problemen. Maar alles zelf van de grond af aan doen, d.w.z. alleen gebruik maken van je eigen ontwikkelingen, is ook hier geen echt alternatief.

3. gebruik geen slechte Plugins

Wat is een "slechte" Plugin? Deze vraag is niet gemakkelijk te beantwoorden. Vooral niet voor de leek. Natuurlijk kan men de exploitanten vragen of geautomatiseerde tests van nieuwe versies worden uitgevoerd. Maar wie doet dat? Veel WordPress gebruikers weten niet eens dat zoiets mogelijk is. Bovendien hebben dergelijke tests (als ze al worden uitgevoerd) vaak niets te maken met live-situaties. Wat begrijpelijk is vanuit het oogpunt van de ontwikkelaar. Wie test elke Plugin met elke Theme? Of elke Plugin met elke andere Plugin? Dat kun je niet. Je kunt er ook niet op vertrouwen dat de ontwikkelaars dat doen.

Hetzelfde geldt hier: het niet gebruiken van "slechte" Plugins is ook geen echt alternatief. Hoewel de kwaliteitsbeoordeling voor veel gebruikers al de eerste horde is, zou u nieuwe Plugins op zijn minst zelf actief moeten testen voordat u ze op een live pagina inbedt. Maar daarover dadelijk meer. 

Waarom auto-updates mislukken

Feit is: Je kunt niet zomaar WordPress niet gebruiken -Plugins . De hierboven genoemde problemen zullen altijd blijven bestaan. Er moet dus een andere oplossing worden gevonden. Dus de vraag die je jezelf moet stellen is: "Hoe kun je - ondanks alle problemen - nog steeds automatische updates uitvoeren voor WordPress -Plugins ?". En deze vraag leidt onvermijdelijk tot de volgende: "Wat kan er misgaan?"

Hier zijn enkele mogelijkheden:

  1. PHP-Fatal-Error: De website werkt helemaal niet vanwege een ernstige fout.
  2. De Plugin werkt niet (meer) met andere Plugins en/of de Theme. Dit manifesteert zich op verschillende manieren:
    a) functies zijn niet langer beschikbaar of
    b) de layout verandert in de frontend.
  3. Niet-bestaande achterwaartse compatibiliteit maakt rollback moeilijk.
  4. De database is zo groot dat een backup erg lang zou duren.

Oplossingsrichtingen voor succesvolle Plugin updates

Herken slecht Plugins

Laten we beginnen met de gebruiker. Hoe kan de gebruiker een "slechte" Plugin herkennen? Aangezien de leek niet kan nagaan of de kwaliteit van de code goed is, zou een systeem moeten worden gecreëerd dat dat wel kan. De vraag is: Zou zoiets werken? En het antwoord is heel duidelijk: Ja!

Het leuke is dat een klein WordPress team al aan zo'n systeem werkt. Het heet Tide. De visie van Tide is om geautomatiseerde kwaliteitstesten uit te voeren voor alle WordPress -Plugins en -Themes en om deze testresultaten zichtbaar te maken voor zowel de auteurs als de eindgebruikers van deze Plugins en Themes .

Het is nog niet klaar, maar in de toekomst zal Tide leken helpen beter te identificeren wat voor soort Plugins zij installeren. Tot dan moet je de Plugin metadata volgen, die op wordpress.org in de Plugin directory staat voor elke afzonderlijke Plugin :

plugin meta
  1. De datum van de laatste bijwerking. Frequente bijwerking kan wijzen op een actief ontwikkelingsproces. In de meeste gevallen zorgen de ontwikkelaars dan ook voor het verhelpen van bugs.
  2. Aantal installaties. Een zeer hoog aantal duidt niet alleen op populariteit, maar kan ook een aanwijzing zijn dat de auteurs geld verdienen met de Plugin (bv. via een Pro-versie). Hierdoor ontstaat enige druk van de kant van de fabrikant. Hij heeft er zeker belang bij dat het gratis Plugin ook foutloos werkt.
  3. Getest tot. Nogmaals, dit is slechts een versienummer dat door de ontwikkelaar op elk moment kan worden aangepast zonder enig bewijs van derden. Een actueel versienummer is echter een aanwijzing dat de auteurs de Plugin regelmatig bijwerken.
  4. PHP versie. Hoewel het fijn is dat ontwikkelaars lage versienummers van PHP blijven ondersteunen, zou een hogere versie veiliger zijn. PHP versie 5.6.x heeft sinds eind 2018 geen beveiligingsupdates meer ontvangen. Momenteel is 7.4 de huidige versie. Het zal tot december 2022 beveiligingsupdates ontvangen.
Herken goede en veilige Plugins

Voor meer hulp bij het beoordelen van de kwaliteit van WordPress -Plugins , kunt u ons artikel"13 tips voor het maken van de juiste keuze Plugin" van Torsten Landsiedel raadplegen.

Geautomatiseerde browser tests

Nu wordt het een beetje moeilijker. Vooral voor de WordPress gebruiker die geen programmeerkennis heeft. Als u afhankelijk bent van belangrijke functies, moet u ze regelmatig testen - bij voorkeur geautomatiseerd, natuurlijk.

Puppeteer is een NodeJS bibliotheek die een high-level API biedt voor het besturen van de Chrome browser via het DevTools protocol. Puppeteer draait standaard headless, maar kan geconfigureerd worden om de browser te openen zodat je kunt zien wat er gebeurt.

Functionele tests

Er zijn veel gevallen waarin dergelijke tests kunnen worden gebruikt. Winkeliers kunnen nagaan of er nog producten aan de winkelwagen kunnen worden toegevoegd. Of er nog formulieren kunnen worden ingediend.

Natuurlijk kunnen niet alle gevallen worden gedekt. Een kleine automatische test is echter in de meeste gevallen doeltreffender dan de eenvoudige visuele inspectie. Je kunt immers niet altijd alle functies van een pagina testen na elke kleine update. Vooral als het zeer uitgebreid is.

Visuele regressietests

Zelfs een "visuele inspectie" zou met de huidige middelen kunnen worden geautomatiseerd. Dit werkt relatief eenvoudig, bijvoorbeeld met BackstopJS. De configuratie gebeurt snel via een JSON-bestand. Een terugslagtest in de console is voldoende om de vergelijking te starten. Tenslotte opent de tool een browservenster en toont de verschillen:

visuele regressietests

Visuele regressietest met BackstopJS: De koopknop verdween na een Plugin update op mijn site.

Aangezien BackstopJS ook een gedetailleerd, machineleesbaar rapport geeft met een onderscheidingswaarde in procenten, zou u bijvoorbeeld per e-mail op de hoogte kunnen worden gebracht wanneer er een belangrijke verandering in de lay-out is opgetreden.

Rollback

Laten we zeggen dat alle updates gedaan zijn en de automatische tests faalden. Wat moet ik doen? Natuurlijk kunnen back-ups automatisch worden geïmporteerd. Maar dit werkt slechts in drie gevallen: 

  1. Als de hoster een interface heeft via welke een rollback automatisch kan worden getriggerd.
  2. Of als je SSH toegang hebt.
  3. En als de back-up klein genoeg is. Anders zal de restore in het ergste geval enkele uren duren.

Veel ontwikkelaars weten maar al te goed dat dit vaak niet mogelijk is. Ofwel is SSH toegang niet beschikbaar, ofwel zijn er timeouts door een gebrek aan middelen op de server.

De voordelen van auto-updates

Auto-updates brengen ook opmerkelijke voordelen met zich mee. Vooral als u meerdere WordPress sites beheert, zult u veel tijd besparen. Nog een pluspunt: in geval van beveiligingslekken wordt uw Plugin automatisch bijgewerkt zodra een veilige update beschikbaar is. U kunt meer lezen over de voordelen van auto-updates in ons nieuwe e-book.

Andere oplossingen?

Natuurlijk is mijn mening slechts een van de vele. Er zijn andere, meestal duurdere oplossingen. In plaats van een back-up achteraf te importeren, kan bijvoorbeeld vooraf een kopie van de pagina worden gemaakt(Staging concept) en kunnen daarmee alle mogelijke updates en tests worden uitgevoerd. Als de test positief is, kunnen de updates ook op de live site worden geïnstalleerd. Dan natuurlijk (meestal) geheel automatisch en zonder ophef.

Een ander idee zou zijn om gewoon statische pagina's te laten maken door WordPress . Dan zou de site een beetje meer onafhankelijk zijn van de eigenlijke kern. Plugins bestaat voor dit doel al acht jaar: WPStatic, bijvoorbeeld. Maar nogmaals, dit werkt niet voor iedereen. Vooral niet voor zeer dynamische sites zoals online shops.

Conclusie

Hoe je het doet, doe je het verkeerd, oké? Nee. Uiteindelijk hangt het af van uw eigen website, uw eigen wensen en, natuurlijk, uw portemonnee. Die geen kritische sites runt en het soms oké vindt dat een website fouten gooit, die een auto-updatPlugine installeert . 

Ook op RAIDBOXES heb je met de Fully Managed add-on om automatische Plugin en Theme updates te activeren. In de instellingen van uw BOX kunt u ook individuele Plugins en Themes, waarmee u al problemen hebt gehad, uitsluiten van de auto-updates

Waarschijnlijk automatische Plugin updates voor de meeste, kleine sites maar toch relatief vlot. Wie grotere sites heeft, heeft wellicht ook een grotere portemonnee om passende maatregelen te nemen. Iedereen daartussen zal zijn eigen oplossing moeten vinden.

Florian Simeth is afgestudeerd ingenieur (FH) voor mediatechnologie en informatica en werkt sinds 2012 als gepassioneerd WordPress ontwikkelaar. Naast het ondersteunen van zijn WordPress -Plugins schrijft hij online en offline voor media zoals het PHP- en WordPress -magazine.

Gerelateerde artikelen

Reacties op dit artikel

Laat een opmerking achter

Jouw e-mailadres zal niet worden gepubliceerd. Verplichte velden zijn met een * gemarkeerd.