
session.cookie_httponly = True
difesa basata su hash Il token di validazione CSRF non è stato implementato in WordPress perché, se fatto, ostacolerebbe le funzionalità di trackback e pingback di WordPress. Il server non può distinguere una richiesta CSRF illegale da una richiesta legittima PINGBACK/TRACEBACK, WordPress accetta automaticamente un commento senza token CSRF corretto come richiesta PINFBACK e TRACEBACK e filtra quel commento con un filtro white-list.
Per difendersi da questa vulnerabilità CSRF, aggiungiamo un nuovo campo nel modulo chiamato hashnonce per verificare che il commento sia inviato da un amministratore. L'amministratore appone una firma sul valore del campo commento con il proprio cookie.
La firma del valore del campo commento usa md5 per generare il valore hash (vedi grafico).
Quando un amministratore tenta di adottare PINFBACK e TRACEBACK e _wp_unfiltered_html non può essere fornito, usiamo wp_verify_hashNonce. Se la validazione fallisce, viene segnalato un errore. Anche se la validazione ha successo, l'errore logico è stato corretto e "wp_filter_kses" verrà usato per filtrare i commenti.
Codice modificato:
il terzo metodo è tratto da https://github.com/sijiahi/Wordpress_cve-2019-9787_defense