Mysql
 sql >> Database >  >> RDS >> Mysql

PHP:mysql contro mysqli contro pdo

Il design della mysql_query funzione è tale che devi stare attento a sfuggire a ogni singolo bit di dati che stai iniettando in esso, e se ne perdi anche uno, l'intera applicazione può essere distrutta da un strumento automatico di exploit della vulnerabilità SQL .

Entrambi mysqli e i segnaposto di supporto PDO che sono richiesti per garantire che le tue query siano al sicuro dai bug di SQL injection. Chiamando mysql_real_escape_string su tutto non è solo noioso, ma soggetto a errori, ed è qui che sorgono i problemi.

Il mysql le funzioni sono un prodotto degli albori di PHP e sono significativamente più limitate delle nuove funzionalità orientate agli oggetti offerte da entrambi mysqli come opzione, o DOP by design.

Ci sono una serie di ottime ragioni per usare una di queste due nuove interfacce, ma la più importante è che mysql_query la funzione è semplicemente troppo pericolosa per essere utilizzata nel codice di produzione. Con esso sarai sempre a un errore di distanza da alcuni problemi molto seri.

C'è un motivo per cui continuano a comparire strappi di database pieni di password e numeri di carte di credito. Avere un punto di iniezione SQL ovvio rende quasi troppo facile prendere completamente il controllo di un sito.