Security 16 december 2025 8 min leestijd

WordPress Versie Verbergen: Complete Hardening Zonder Plugins

Verberg alle WordPress fingerprints: generator tags, versienummers in scripts, REST API info en emoji detectie. Professionele mu-plugin oplossing die geen core bestanden aanraakt.

Thomas de Groot Security Expert bij wpts.nl
view-source: <meta name="generator" content="WordPress 6.4.2"> /style.css?ver=6.4.2 /jquery.min.js?ver=3.7.1 "generator": "WordPress 6.4.2" wp-emoji-release.min.js?ver=6.4.2 <!-- No generator tag --> /style.css /jquery.min.js No Fingerprints
Belangrijk: Het verbergen van je versie is geen volledige beveiliging, maar het maakt geautomatiseerde aanvallen wel moeilijker. Combineer dit altijd met updates en andere beveiligingsmaatregelen.

Waarom WordPress Versie Verbergen?

Je WordPress versie is standaard op meerdere plekken zichtbaar. Dit maakt het voor hackers eenvoudig om te bepalen welke kwetsbaarheden van toepassing zijn op jouw specifieke installatie.

Wanneer een nieuwe WordPress kwetsbaarheid wordt ontdekt, scannen hackers massaal het internet naar websites met die specifieke versie. Door je versie te verbergen, val je niet op in deze scans.

Voordelen van version hardening:

  • Minder doelwit voor geautomatiseerde scans
  • Hackers weten niet welke exploits werken
  • Schonere HTML zonder onnodige meta tags
  • Snellere pagina's door verwijdering emoji scripts

Waar WordPress Versie-informatie Lekt

WordPress verraadt zijn versie op verrassend veel plekken:

1. HTML Generator Tag

HTML
<meta name="generator" content="WordPress 6.4.2">

2. RSS Feed Generator

XML
<generator>https://wordpress.org/?v=6.4.2</generator>

3. Script/Style Versienummers

HTML
<link rel="stylesheet" href="/wp-content/themes/theme/style.css?ver=6.4.2">
<script src="/wp-includes/js/jquery.min.js?ver=3.7.1"></script>

4. REST API Response

JSON
{
  "name": "Mijn Website",
  "generator": "WordPress 6.4.2"
}

De Complete mu-plugin Code

Maak het bestand /wp-content/mu-plugins/wpts-version-hardening.php aan:

PHP - wpts-version-hardening.php
<?php
/**********************************************************************
 *                                                                    *
 *   **************************************************************   *
 *   *                                                            *   *
 *   *        WPTS.nl - WordPress Version Hardening               *   *
 *   *        No Plugins. No Noise. No Fingerprints.              *   *
 *   *                                                            *   *
 *   *        Camouflage, not core modification                   *   *
 *   *                                                            *   *
 *   **************************************************************   *
 *                                                                    *
 **********************************************************************/

/* ============================================================
 * 1. REMOVE GENERATOR TAGS (HTML, RSS, XHTML)
 * ============================================================ */

remove_action('wp_head', 'wp_generator');
add_filter('the_generator', '__return_empty_string');
add_filter('get_the_generator_html', '__return_empty_string');
add_filter('get_the_generator_xhtml', '__return_empty_string');


/* ============================================================
 * 2. STRIP ?ver= FROM SCRIPTS & STYLES (FRONTEND ONLY)
 * ============================================================ */

add_filter('style_loader_src', 'wpts_strip_wp_version', 999);
add_filter('script_loader_src', 'wpts_strip_wp_version', 999);

function wpts_strip_wp_version($src) {
    if (!is_admin() && strpos($src, 'ver=')) {
        return remove_query_arg('ver', $src);
    }
    return $src;
}


/* ============================================================
 * 3. REST API GENERATOR CLEANUP
 * ============================================================ */

add_filter('rest_index', function ($response) {
    if (is_array($response) && isset($response['generator'])) {
        unset($response['generator']);
    }
    return $response;
});


/* ============================================================
 * 4. REMOVE VERSION FROM EMOJIS & EMBEDS
 * ============================================================ */

remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');

remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('wp_head', 'wp_oembed_add_host_js');


/* ============================================================
 * 5. HARD FAIL SAFE (NO CORE TOUCHING)
 * ============================================================ */

// Nothing below this line modifies core behavior.
// This file only removes public fingerprints.
// Core updates remain untouched and safe.

Code Uitleg per Sectie

Sectie 1: Generator Tags Verwijderen

Dit verwijdert de WordPress versie uit alle mogelijke outputs:

  • remove_action('wp_head', 'wp_generator') - Verwijdert meta generator tag
  • the_generator filter - Verwijdert versie uit RSS feeds
  • get_the_generator_html/xhtml - Verwijdert uit andere formaten

Sectie 2: Versienummers uit Scripts & Styles

De ?ver= parameter wordt verwijderd uit alle CSS en JavaScript bestanden:

  • Prioriteit 999 zorgt dat het als laatste wordt uitgevoerd
  • !is_admin() zorgt dat het alleen op de frontend werkt
  • remove_query_arg('ver', $src) verwijdert de parameter
Bonus: Door emoji en oEmbed scripts te verwijderen, laadt je pagina sneller. Deze scripts zijn zelden nodig en verbruiken onnodige resources.

Sectie 3: REST API Cleanup

Wanneer iemand /wp-json/ opvraagt, bevat de response normaal een "generator" veld. Deze filter verwijdert dat.

Sectie 4: Emoji & oEmbed Scripts

WordPress laadt standaard emoji-detectie scripts die versie-informatie bevatten. Deze worden volledig verwijderd, wat ook de performance verbetert.

Installatie Stap-voor-Stap

  1. 1
    Maak mu-plugins map aan

    Controleer of /wp-content/mu-plugins/ bestaat. Zo niet, maak deze map aan via FTP of bestandsbeheer.

  2. 2
    Maak het bestand aan

    Maak een nieuw bestand wpts-version-hardening.php in de mu-plugins map.

  3. 3
    Plak de code

    Kopieer de volledige code van hierboven en plak deze in het bestand.

  4. 4
    Klaar!

    mu-plugins worden automatisch geladen. Er is geen activatie nodig.

Verificatie

Controleer of de versie-informatie succesvol is verwijderd:

1. Bekijk de HTML Broncode

Open je website en bekijk de broncode (Ctrl+U). Zoek naar "generator" - deze zou niet meer aanwezig moeten zijn.

2. Test REST API

Terminal
curl -s https://jouwsite.nl/wp-json/ | grep generator

Dit zou geen resultaat moeten geven.

3. Check Scripts & Styles

Bekijk de broncode en zoek naar ?ver= in CSS en JS URLs. Deze parameters zouden verwijderd moeten zijn.

Gratis Security Scan

Test of je versie succesvol verborgen is met onze gratis scanner.

Start Scan

Veelgestelde Vragen

Breekt dit mijn website?

Nee, dit script verwijdert alleen meta-informatie en versienummers. Het raakt geen functionele code aan. Je website blijft exact hetzelfde werken.

Blijft dit werken na WordPress updates?

Ja, mu-plugins worden niet aangeraakt door WordPress updates. Het bestand blijft actief en functioneel na elke core update.

Kan ik dit combineren met security plugins?

Ja, dit script is compatibel met alle bekende security plugins. Het kan wel zijn dat sommige functies overlappen - in dat geval kun je delen uitschakelen.

Waarom een mu-plugin in plaats van een gewone plugin?

mu-plugins zijn altijd actief en kunnen niet per ongeluk worden uitgeschakeld. Ze laden ook voor gewone plugins, wat belangrijk is voor beveiliging.

Schaadt dit mijn caching?

Het verwijderen van ?ver= parameters kan de browser caching juist verbeteren. Bestanden worden nu gecached op basis van hun pad. Zorg wel dat je een goede cache-busting strategie hebt bij updates.

Conclusie

Met deze mu-plugin verwijder je alle publieke WordPress fingerprints zonder risico's. Het script:

  • Verwijdert generator tags uit HTML, RSS en XHTML
  • Stripted versienummers uit scripts en stylesheets
  • Verwijdert versie-info uit de REST API
  • Schakelt onnodige emoji en oEmbed scripts uit
  • Raakt geen core bestanden aan

Dit is een essentieel onderdeel van WordPress hardening. Combineer het met onze andere beveiligingsmaatregelen voor maximale bescherming.

Professionele WordPress Beveiliging

Wil je al deze beveiligingsmaatregelen professioneel laten implementeren?

Vraag Advies
Deel dit artikel:

Gerelateerde Artikelen

.htaccess
Security

.htaccess Beveiliging: 12 Regels

/custom-login
Security

Login URL Verbergen

wp-config.php
Security

wp-config.php Beveiliging