Dans le processus de transition de mysql_* vers PDO, vous pouvez rencontrer un dilemme avec l'absence d'équivalent direct à mysql_real_escape_string.
Aucun équivalent direct
Techniquement, il existe PDO::quote(), mais son utilisation est limitée. La vraie solution réside dans l'implémentation correcte des instructions préparées.
Les instructions préparées protègent contre les injections
PDO, lorsqu'il est utilisé avec des instructions préparées, protège intrinsèquement contre les injections MySQL sans le besoin d'évasion supplémentaire. Les instructions préparées lient les paramètres d'entrée à des espaces réservés, empêchant ainsi les entrées malveillantes d'être interprétées comme des commandes SQL.
Exemple : Utilisation d'instructions préparées dans PDO
Le code suivant illustre une base de données sécurisée requête utilisant des instructions préparées :
false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
]);
if ($_POST && isset($_POST['color'])) {
$stmt = $db->prepare("SELECT id, name, color FROM Cars WHERE color = ?");
$stmt->execute(array($_POST['color']));
$cars = $stmt->fetchAll(\PDO::FETCH_ASSOC);
var_dump($cars);
}
?>
Avantages des instructions préparées
Considérations supplémentaires
Conclusion
Les instructions préparées dans PDO fournissent un mécanisme robuste et sécurisé pour les requêtes de base de données sans avoir besoin de fonctions telles que mysql_real_escape_string. En adoptant cette approche, vous pouvez empêcher efficacement les injections SQL et maintenir l'intégrité de vos données.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3