Maison >développement back-end >tutoriel php >Comment prévenir les attaques par injection SQL dans le développement du langage PHP ?
Dans le processus de développement de sites Web, l'attaque par injection SQL est une vulnérabilité de sécurité courante. Elle permet aux attaquants d'obtenir des données sensibles du site Web ou de contrôler le site Web en injectant de manière malveillante du code SQL. PHP est un langage back-end couramment utilisé. Ce qui suit explique comment empêcher les attaques par injection SQL dans le développement du langage PHP.
// 创建PDO对象 $pdo = new PDO("mysql:host=localhost;dbname=test", "root", "password"); // 创建预处理语句对象 $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username AND password = :password"); // 绑定参数 $username = $_POST['username']; $password = $_POST['password']; $stmt->bindParam(":username", $username); $stmt->bindParam(":password", $password); // 执行语句 $stmt->execute();
Grâce aux espaces réservés et aux paramètres liés, les problèmes de sécurité causés par les attaques par injection SQL peuvent être évités.
// 过滤输入的字符串 $username = filter_var($_POST['username'], FILTER_SANITIZE_STRING); // 转义输入的字符串 $username = mysqli_real_escape_string($connection, $_POST['username']);
où, la fonction FILTER_SANITIZE_STRING
函数会过滤字符串中的标签和特殊字符,而mysqli_real_escape_string
échappera aux caractères spéciaux dans les données d'entrée.
// 验证邮箱地址 if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) { echo "Email is not valid"; } // 验证手机号 if (!preg_match("/^[0-9]{11}$/", $_POST['phone'])) { echo "Phone number is not valid"; }
Lors de la vérification des données, une vérification spécifique doit être effectuée sur les données d'entrée spécifiques pour garantir la légalité des données.
Pour résumer, les méthodes permettant de prévenir les attaques par injection SQL dans le développement du langage PHP incluent l'utilisation de requêtes paramétrées, le filtrage et l'échappement des données d'entrée, la validation des données d'entrée et la réduction des autorisations de base de données. Les développeurs doivent renforcer leur sensibilisation à la sécurité et prendre des mesures efficaces pour assurer la sécurité de leurs sites Web.
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!