Woordenlijst

Wat zijn Application Passwords in WordPress?

20 mei 2026

Application Passwords zijn 24 tekens lange credentials die in WordPress 5.6 (december 2020) werden geïntroduceerd. Ze laten externe applicaties authenticeren tegen de WordPress REST API en XML RPC zonder het hoofdwachtwoord van de gebruiker bloot te leggen. Elk Application Password is gekoppeld aan één gebruiker en één benoemde applicatie, kan individueel ingetrokken worden in het gebruikersprofiel en wordt via HTTPS verzonden met HTTP Basic Authentication. Ze vervangen het oude onveilige patroon van het opslaan van het hoofdwachtwoord in apps van derden en zijn nu de aanbevolen manier om WordPress te integreren met mobiele apps, deploy scripts, headless frontends, backup tools en AI agents.

Waarom heeft WordPress Application Passwords geïntroduceerd?

Vóór WordPress 5.6 moest elke REST API of XML RPC integratie met schrijftoegang het hoofdwachtwoord van het account gebruiken (Basic Auth) of vertrouwen op plugins als JWT Auth of OAuth. Het hoofdwachtwoord gaf volledige controle inclusief de theme en plugin editor, en een lek betekende volledige overname van het account. Application Passwords lossen dit op met credentials per app die direct ingetrokken kunnen worden zonder het gebruikerswachtwoord te wijzigen of andere integraties te breken.

Hoe werken Application Passwords?

Een ingelogde gebruiker opent Gebruikers » Profiel, scrollt naar "Application Passwords", geeft een naam in zoals "iPhone App" of "Backup Script" en klikt Voeg nieuw Application Password toe. WordPress genereert een token van 24 tekens, eenmalig getoond in het formaat xxxx xxxx xxxx xxxx xxxx xxxx. Het token wordt gehasht opgeslagen in wp_usermeta onder de sleutel _application_passwords en gebruikt met de username in HTTP Basic Auth:

curl -u gebruiker:xxxxxxxxxxxxxxxxxxxxxxxx \
     https://example.com/wp-json/wp/v2/posts

Of via JavaScript fetch:

const token = btoa('gebruiker:xxxxxxxxxxxxxxxxxxxxxxxx');
fetch('https://example.com/wp-json/wp/v2/posts', {
  headers: { 'Authorization': 'Basic ' + token }
});

Typische use cases

  • Mobiele apps zoals de officiële WordPress iOS en Android app.
  • Headless frontends met Next.js, Astro, SvelteKit, Nuxt.
  • CI/CD deploy scripts die posts publiceren, menu's updaten of cache purges triggeren.
  • Backup en migratietools zoals UpdraftPlus Remote, ManageWP, MainWP.
  • AI content workflows via Zapier, Make, n8n of een eigen GPT agent.
  • WooCommerce voorraadsync met een ERP of PIM.

Application Password stap voor stap aanmaken

  1. Log in als de gebruiker namens wie de integratie werkt. Maak waar mogelijk een speciale gebruiker met minimale rol.
  2. Ga naar Gebruikers » Profiel of Gebruikers » Alle » Bewerken.
  3. Scroll naar Application Passwords.
  4. Geef een sprekende naam, bv. Zapier Productie of Backupserver eu01.
  5. Klik Voeg nieuw Application Password toe.
  6. Kopieer het token van 24 tekens direct.
  7. Plak het in de externe app samen met de WordPress gebruikersnaam.

Application Passwords intrekken en auditen

Op hetzelfde scherm toont elk Application Password aanmaakdatum en laatst gebruikt. Intrekken invalideert een token, Alle Application Passwords intrekken invalideert alles. Direct effect. Kwartaalcheck op "Laatst gebruikt" helpt vergeten integraties opsporen.

Zijn Application Passwords veilig?

Ja, over HTTPS. Circa 144 bits entropie, phpass hashing, alleen in de Authorization header. Risico's:

  • HTTPS verplicht. WordPress weigert ze over kaal HTTP standaard.
  • Geen scopes of vervaldatum. Token erft alle rechten van de gebruiker.
  • Uitgeschakeld door sommige hardening plugins (iThemes/Solid Security).

Verschil met OAuth, JWT of API Keys

MethodeIn WordPress ingebouwdPer app intrekbaarScopesVervaldatum
Hoofdwachtwoord (Basic Auth)JaNeeVolledigNee
Application PasswordJa (5.6+)JaErft rolNee
JWT Auth (plugin)NeeAlleen vervaldatumErft rolJa
OAuth 2.0 (plugin)NeeJaJaJa (refresh)
WooCommerce REST API KeysWooCommerceJaLezen/SchrijvenNee

Application Passwords volledig uitschakelen

add_filter( 'wp_is_application_passwords_available', '__return_false' );

Of per gebruiker:

add_filter( 'wp_is_application_passwords_available_for_user', function ( $available, $user ) {
    if ( user_can( $user, 'manage_options' ) ) {
        return false;
    }
    return $available;
}, 10, 2 );

Wat InspectWP controleert

InspectWP rapporteert de beschikbaarheid van de WordPress REST API en markeert het endpoint /wp-json/wp/v2/users als het gebruikersdata zonder authenticatie blootstelt.

Controleer nu uw WordPress-site

InspectWP analyseert uw WordPress-site op beveiligingsproblemen, SEO-problemen, GDPR-naleving en prestaties — gratis.

Analyseer uw site gratis