Cos’è: nonce

Il termine nonce indica un numero, generalmente casuale, che ha un utilizzo unico, infatti nonce deriva dall’espressione inglese number used once (numero utilizzato una volta).

WordPress utilizza i nonce per proteggere URL e moduli da determinati tipi di uso improprio tramite tentativi di hacking dannosi.

Sebbene in WordPress un nonce non sia tecnicamente un numero (in fatti è un hash composto da lettere e numeri), aiuta a impedire che le azioni vengano eseguite da utenti malintenzionati.

Il funzionamento dei nonce di WordPress può essere suddiviso in due parti:

  • Creazione di un nonce (hash), e invio dello stesso tramite un modulo o un’azione.
  • Verifica di un nonce, prima di accettare i dati del modulo o eseguire un’azione.

Ad esempio, quando si elimina un articolo nell’area di amministrazione di WordPress, l’URL rtestituito dal sistema contiene un parametro _wpnonce:

https://wplab.it/wp-admin/post.php?post=738&action=trash&_wpnonce=b04de99247

WordPress controllerà che il post 738 abbia un valore nonce uguale a b04de99247 prima di eliminare l’articolo ma, se il nonce non esiste o non corrisponde al valore atteso, l’articolo non verrà eliminato.

Ciò impedisce a un utente malintenzionato di eliminare potenzialmente molti articoli.

Nonce fornisce un sistema di sicurezza alle funzioni e caratteristiche di WordPress che utilizzano la stringa di query nell’URL per eseguire determinate azioni.

WordPress utilizza NONCE_SALT e NONCE_KEY (Chiavi Univoche di Autenticazione e di Salatura) per generare nonce unici che, insieme ad altre chiavi univoche, sono archiviati nel file wp-config.php e sono univoci per ogni sito WordPress.