Een Open Redirect (open omleidingsfout) is een kwetsbaarheid waarbij een website een parameter in de URL accepteert die de gebruiker doorstuurt naar een externe pagina, zonder deze bestemming te valideren. Hoewel dit op het eerste gezicht een klein probleem lijkt, is het een uiterst effectief wapen voor phishing-aanvallen. Cybercriminelen misbruiken de goede reputatie en het SSL-certificaat van uw WooCommerce-webshop om slachtoffers te lokken naar kwaadaardige, nagemaakte inlogpagina's of malware-sites.

Hoe een Open Redirect werkt

WooCommerce maakt regelmatig gebruik van omleidingen, bijvoorbeeld na het inloggen, het toevoegen van een product aan de winkelmand, of na het succesvol afronden van een betaling. Een typische (onveilige) URL kan er zo uitzien:

https://uwbetrouwbarewebshop.nl/login/?redirect_to=https://uwbetrouwbarewebshop.nl/mijn-account/

Een aanvaller kan de parameter redirect_to handmatig aanpassen naar een externe site die er identiek uitziet als uw webshop:

https://uwbetrouwbarewebshop.nl/login/?redirect_to=https://kwaadaardigewebsite.com/phishing-page

De aanvaller verspreidt deze link via e-mail of sociale media. Het slachtoffer klikt op de link, ziet uw betrouwbare domeinnaam en het groene slotje in de adresbalk, en typt zijn inloggegevens in. Na het succesvol inloggen op uw echte site, stuurt de kwetsbare plug-in de gebruiker direct door naar de phishing-pagina, waar de gebruiker wordt gevraagd zijn creditcardgegevens "opnieuw te verifiëren". Het slachtoffer heeft de omleiding vaak niet eens door.

Voorkomen van Open Redirects in WordPress

WordPress heeft een specifieke functie ontwikkeld om dit type misbruik te voorkomen: wp_safe_redirect().

Waar de standaard PHP-functie header("Location: ...") of de WordPress-functie wp_redirect() elk willekeurig adres accepteert, controleert wp_safe_redirect() of de doel-URL behoort tot de eigen website (hetzelfde domein) of tot een expliciet goedgekeurde lijst van domeinen. Als de URL naar een externe site verwijst, weigert de functie de omleiding en stuurt de gebruiker in plaats daarvan naar de startpagina van de administratie (wp-admin/).

PHP
 
// ONVEILIG
$target = $_GET['redirect_to'];
wp_redirect($target);
exit;

// VEILIG
$target = $_GET['redirect_to'];
wp_safe_redirect($target);
exit;

Ontwikkelaars moeten er tevens voor zorgen dat ze de invoer opschonen met esc_url_raw() voordat deze aan de omleidingsfunctie wordt doorgegeven.

Tips voor webshopeigenaren

  • Controleer uw links: Als u merkt dat uw webshop via bepaalde parameters willekeurige externe websites opent, neem dan direct contact op met de ontwikkelaar van de betreffende plug-in.

  • Gebruik e-mailbeveiliging: Richt SPF, DKIM en DMARC in voor het e-mailachtergronddomein van uw webshop. Dit voorkomt dat aanvallers uit naam van uw winkel phishing-e-mails sturen die gebruikmaken van eventuele open redirects op uw site.

  • Beveiligingsbewustzijn: Informeer uw klantenservice over dit type fraude, zodat zij snel kunnen reageren als klanten melden dat ze na een bezoek aan de webshop op vreemde pagina's belanden.