PKCE, acronimo di Proof Key for Code Exchange, è una misura di protezione OAuth per client pubblici come app basate su browser, app mobili e app desktop. Durante l'accesso, il client crea un verifier segreto e invia un challenge derivato con la richiesta di autorizzazione. Quando torna il codice di autorizzazione, il client deve presentare il verifier originale per poterlo riscattare.
Questo è importante perché blocca i comuni attacchi di intercettazione. Se un attaccante ruba un codice di autorizzazione OAuth tramite un'estensione malevola, un proxy o una fuga di redirect, il solo codice non basta per ottenere token senza il verifier. PKCE non impedisce il furto dei token dopo l'emissione, ma riduce notevolmente il valore dei codici intercettati. I difensori usano PKCE per rendere più sicuri i flussi OAuth nel browser, soprattutto quando il client non può mantenere un tradizionale segreto client. Oggi è un controllo fondamentale per i moderni sistemi di accesso e single sign-on.


