Prima di tutto, capisco che le persone vogliano utilizzare le stored procedure in modo che riutilizzino le query e si occupino della fuga. Tuttavia, ho letto molti sviluppatori affermano che mysqli_real_escape_string
non può impedire al 100% le iniezioni SQL. Qualcuno può fornire un esempio di questo?In che modo mysqli_real_escape_string non riesce a prevenire un'iniezione SQL?
Dalla mia limitata conoscenza sull'argomento direi che sarebbe mysqli_real_escape_string
sempre andare bene per le stringhe, ma per i valori numerici si potrebbe essere colti di sorpresa, a meno di controllare il numero è un int, float, double, ecc
EDIT: Ho dimenticato di aggiungere qualcosa di critico: supponiamo che il set di caratteri sia UTF8 e mysqli_set_charset sia stato chiamato di conseguenza. L'unica iniezione che ho visto si basa su una manciata di set di caratteri (nessuno dei quali è UTF8).
[SQL injection che ottiene intorno mysql_real_escape_string()] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) –
+1, JW per il collegamento. –
La risposta dal link è troppo appariscente per i miei gusti. –