Mysql
 sql >> Base de données >  >> RDS >> Mysql

PHP :mysql v mysqli v pdo

La conception de mysql_query est telle que vous devez faire attention à échapper à chaque bit de données que vous y injectez, et si vous en manquez ne serait-ce qu'une seule, votre application entière peut être détruite par un outil d'exploitation automatique des vulnérabilités SQL .

Les deux mysqli et PDO prennent en charge les espaces réservés qui sont obligatoires pour vous assurer que vos requêtes sont à l'abri des bogues d'injection SQL. Appel de mysql_real_escape_string sur tout est non seulement fastidieux, mais sujet aux erreurs, et c'est là que les problèmes surviennent.

Le mysql Les fonctions sont un produit des tout premiers jours de PHP et sont nettement plus limitées que les nouvelles fonctionnalités orientées objet offertes par mysqli en option, ou AOP par conception.

Il existe un certain nombre de très bonnes raisons d'utiliser l'une de ces deux nouvelles interfaces, mais la plus importante est que le mysql_query La fonction est tout simplement trop dangereuse pour être utilisée dans le code de production. Avec lui, vous serez toujours à une erreur de certains problèmes très graves.

Il y a une raison pour laquelle des déchirures de bases de données pleines de mots de passe et de numéros de cartes de crédit continuent d'apparaître. Avoir un point d'injection SQL évident rend presque trop facile la prise en charge complète d'un site.