mysql_real_escape_string() et mysql_escape_string() sont-ils suffisants pour la sécurité des applications ?
Bien que ces fonctions puissent améliorer la protection des données, elles ne suffisent pas à protégez entièrement les applications Web de tous les risques de sécurité.
SQL L'injection
Attaques LIKE SQL
Exploits de jeu de caractères
LIMIT Exploits
Défense proactive : Déclarations préparées
Exemple de code
Voici une comparaison de mysql_escape_string() et des instructions préparées dans PHP :
// Escaping Method $sql = sprintf("SELECT url FROM GrabbedURLs WHERE %s LIKE '%s%%' LIMIT %s", mysql_real_escape_string($argv[1]), mysql_real_escape_string($argv[2]), mysql_real_escape_string($argv[3])); // Prepared Statement $statement = $pdo->prepare('SELECT url FROM GrabbedURLs ' . 'WHERE ' . $column . '=? ' . 'LIMIT ' . intval($limit)); $statement->execute(array($value));
Les instructions préparées, bien que légèrement plus longues à mettre en œuvre, offrent une protection supérieure contre les requêtes SQL malveillantes et réduisent la complexité du code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!