Salve Gigi991, risponderò solo ad alcuni punti in base all'articolo che hai menzionato senza entrare nel dettaglio di WP:
@Gigi991 said:
Per wordpress penso di evitare ogni plugin e sfruttare i template.
Per l'interazione con il database ho trovato questo: it.wikihow.com/Creare-uno-Script-Sicuro-per-il-Login-Usando-PHP-e-MySQL
E avrei alcune domande:
[…]
Utilizzano hash() con SHA512. Ci sono differenze, in termini di sicurezza, se uso password_hash() con PASSWORD_DEFAULT?
Nel momento in cui scrivo SHA512 è una funzione di hash considerata sicura. Se usi password_hash() con PASSWORD_DEFAULT forse è leggermente di più, però paghi pegno già nell'uso dovendo avere installata una versione di PHP5.5+, e nel caso in cui dovessi trasferire su un server che non ha aggiornato tutti gli algoritmi fortemente sicuri utilizzati nella precedente macchina con quella versione di software, quei specifici settaggi e aggiornamenti. Cito dalla guida online: “Note that this constant is designed to change over time as new and stronger algorithms are added to PHP” in vista dell'uso della funzione password_verify().
@Gigi991 said:
Ho letto che non è necessario rigenerare la sessione ad ogni caricamento della pagina. Può avere senso rigenerarla random utilizzando rand() una volta ogni 5 circa (trovai uno script che utilizzava questa modalità)?
Dal mio sommesso punto di vista mi trovo d'accordo con te perché in base a prove che avevo fatto con quell'impostazione e facendo il refresh della pagina già per alcune volte misteriosamente c'era qualcosa di imprevedibile se fatto velocemente.
@Gigi991 said:
Manca qualcos'altro in quello script o è una buona base?
L'articolo mi sembra valido, ma come indicato in fondo allo stesso i consigli e le avvertenze mi sembrano ragionevoli.