Sono nuovo a lavorare con PHP, e recentemente ho ereditato un progetto di sito web in cui lo sviluppatore originale stava disinfettando l'input dell'utente con mysqli_real_escape_string()
prima di interrogare il database MySQL. Come ho appreso di recente da SQL Injection che circonda mysql_real_escape_string ()
, il database è ancora vulnerabile all'iniezione SQL nei campi numerici e al suo posto dovrebbero essere utilizzate istruzioni preparate.
Continuo a trovare vulnerabilità come questa alla volta, mentre approfondisco il modo in cui PHP pulisce, memorizza e gestisce i dati. La maggior parte delle informazioni che riesco a trovare sul Web è ormai obsoleta, quindi è difficile trovare un elenco delle migliori pratiche attuali. Per la mia applicazione, ho bisogno di memorizzare le password degli utenti, consentire accessi con più livelli di autorizzazione, recuperare i dati dal nostro database, consentire agli utenti di inviare vari moduli, ecc.
Qualcuno ha un elenco completo e aggiornato delle migliori pratiche PHP da utilizzare durante la programmazione del sito Web? In caso contrario, sei a conoscenza di errori di sicurezza comuni che i nuovi programmatori PHP fanno e come evitarli? Qualsiasi aiuto sarebbe molto apprezzato.