Maison >développement back-end >tutoriel php >Sécurité des sites Web PHP : Comment empêcher l'injection de code malveillant ?
Sécurité des sites Web PHP : Comment empêcher l'injection de code malveillant ?
Avec le développement d'Internet, la sécurité des sites Web est devenue un enjeu sérieux. L'injection de code malveillant est l'une des méthodes d'attaque courantes. Son objectif est d'obtenir des informations sensibles des utilisateurs ou d'endommager le site Web en entrant un code malveillant dans le site Web. Cet article présentera quelques mesures pour empêcher l’injection de code malveillant et fournira des exemples de code.
filter_var()
La fonction peut vérifier et filtrer différents types de données, telles que les adresses e-mail, les URL, les entiers, etc. La fonction filter_var()
函数可以校验和过滤各种类型的数据,如邮箱地址、URL、整数等。$email = $_POST['email']; if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { // 邮箱地址不合法,进行相应处理 }
preg_match()
函数可用于使用正则表达式对数据进行匹配检查。$username = $_POST['username']; if (!preg_match("/^[a-zA-Z0-9]*$/", $username)) { // 用户名包含非法字符,进行相应处理 }
htmlspecialchars()
函数可将特殊字符转换为HTML实体,防止脚本被执行。$username = $_POST['username']; echo "Welcome, " . htmlspecialchars($username) . "!";
mysqli_real_escape_string()
函数可用于对SQL查询中的特殊字符进行转义,以防止SQL注入攻击。$username = $_POST['username']; $password = $_POST['password']; $username = mysqli_real_escape_string($conn, $username); $password = mysqli_real_escape_string($conn, $password); $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$username = $_POST['username']; $password = $_POST['password']; $stmt = $conn->prepare("SELECT * FROM users WHERE username=? AND password=?"); $stmt->bind_param("ss", $username, $password); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows > 0) { // 用户名和密码匹配,进行相应处理 }
chmod
命令设置网站目录的权限,只赋予必要的写权限,避免恶意代码的写入和执行。allow_url_fopen
和allow_url_include
preg_match()
peut être utilisée pour vérifier les correspondances des données à l'aide d'expressions régulières. rrreee
htmlspecialchars()
peut convertir des caractères spéciaux en entités HTML pour empêcher l'exécution de scripts. La fonction 🎜🎜rrreee🎜🎜mysqli_real_escape_string()
peut être utilisée pour échapper aux caractères spéciaux dans les requêtes SQL afin d'empêcher les attaques par injection SQL. 🎜🎜rrreeechmod
pour définir les autorisations du répertoire du site Web et accordez uniquement les autorisations d'écriture nécessaires pour éviter l'écriture et l'exécution de code malveillant. 🎜🎜Désactivez les options allow_url_fopen
et allow_url_include
dans les fichiers de configuration PHP pour empêcher les attaques par inclusion de fichiers à distance. 🎜🎜Mettre régulièrement à jour et maintenir les logiciels du serveur et des applications pour garantir que les versions logicielles utilisées ne présentent aucune vulnérabilité de sécurité connue. 🎜🎜🎜Résumé : L'injection de code malveillant est une méthode d'attaque courante, mais grâce à des mesures préventives appropriées, nous pouvons réduire considérablement le risque d'attaques par injection. Cet article présente la validation et le filtrage des entrées, l'échappement des sorties, l'utilisation d'instructions préparées et la restriction des autorisations et des configurations de sécurité pour empêcher l'injection de code malveillant, et fournit des exemples de code correspondants. Nous espérons que les lecteurs pourront pleinement comprendre l’importance de ces mesures et les appliquer lors du développement du site Web pour garantir la sécurité du site. 🎜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!