Maison >développement back-end >tutoriel php >Comment vérifier la saisie des utilisateurs dans les formulaires PHP et améliorer la sécurité

Comment vérifier la saisie des utilisateurs dans les formulaires PHP et améliorer la sécurité

WBOY
WBOYoriginal
2023-06-24 08:32:511279parcourir

Avec la popularité d'Internet, de plus en plus de sites Web exigent que les utilisateurs se connectent, s'inscrivent, effectuent des requêtes et d'autres opérations, ce qui nécessite l'utilisation de formulaires PHP. Cependant, lors de l'utilisation de formulaires PHP, des problèmes de sécurité doivent être pris en compte. Afin d'améliorer la sécurité du site Web, nous devons vérifier le contenu saisi par l'utilisateur. Cet article explique comment vérifier les saisies des utilisateurs dans les formulaires PHP pour améliorer la sécurité du site Web.

1. Filtrer les données saisies par l'utilisateur

La première étape consiste à filtrer les données saisies par l'utilisateur. Il existe de nombreux caractères inutiles dans les données saisies par l'utilisateur, tels que des espaces, des tabulations, des retours chariot, des sauts de ligne, etc. Ces caractères peuvent entraîner l'échec de l'exécution du script PHP ou être exploités par des attaquants. Par conséquent, nous devons utiliser des fonctions en PHP pour filtrer ces caractères.

La fonction strip_tags() en PHP peut filtrer les balises HTML et PHP et renvoyer la chaîne filtrée. Par exemple :

$username = strip_tags($_POST['username']); // 过滤掉HTML和PHP标签

La fonction trim() en PHP peut filtrer les espaces, les tabulations, les retours chariot et les sauts de ligne en excès aux deux extrémités d'une chaîne. Par exemple :

$username = trim($_POST['username']); // 过滤掉两端空格、制表符、回车和换行符

2. Vérifiez les données saisies par l'utilisateur

La deuxième étape consiste à vérifier les données saisies par l'utilisateur. Nous pouvons utiliser des expressions régulières en PHP pour vérifier les données saisies par l'utilisateur. L'expression régulière est une expression utilisée pour faire correspondre des chaînes et peut être utilisée pour vérifier si les données saisies par l'utilisateur répondent aux exigences.

Vérifiez le numéro de téléphone mobile :

$phone = $_POST['phone'];
if(!preg_match('/^1[3|4|5|7|8][0-9]{9}$/', $phone)){ // 使用正则表达式进行校验
    echo '手机号码格式不正确';
}

Vérifiez l'e-mail :

$email = $_POST['email'];
if(!preg_match('/^[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-zA-Z]+$/', $email)){ // 使用正则表达式进行校验
    echo '邮箱格式不正确';
}

3. Prévenir les attaques par injection SQL

La troisième étape consiste à empêcher les attaques par injection SQL. Les attaques par injection SQL sont une méthode d'attaque courante. Les attaquants peuvent endommager la base de données ou même voler des données en injectant du code malveillant dans des instructions SQL. Par conséquent, dans les formulaires PHP, nous devons utiliser certaines fonctions pour filtrer les données saisies par l'utilisateur.

La fonction mysqli_real_escape_string() en PHP peut échapper aux caractères spéciaux tels que les guillemets simples, les guillemets doubles, les barres obliques inverses, etc. dans la chaîne saisie par l'utilisateur pour éviter les attaques par injection SQL. Par exemple :

$username = mysqli_real_escape_string($conn, $_POST['username']); // 过滤掉单引号、双引号、反斜线等特殊字符

4. Utiliser le code de vérification

Enfin, afin de prévenir les attaques malveillantes, nous pouvons utiliser des codes de vérification. Le code de vérification est une technologie d’identification homme-machine qui peut empêcher les robots ou les programmes malveillants d’attaquer de manière malveillante le site Web. Nous pouvons ajouter une fonction de code de vérification au formulaire PHP pour vérifier la saisie de l'utilisateur.

Fonction de génération de code de vérification PHP :

$code = '';
for($i = 0; $i < 4; $i++){
    $code .= rand(0, 9); // 生成四位随机验证码
}
$img = imagecreatetruecolor(80, 30); // 创建图片
$bg_color = imagecolorallocate($img, 255, 255, 255); // 设置背景颜色
$font_color = imagecolorallocate($img, 0, 0, 0); // 设置字体颜色
imagefill($img, 0, 0, $bg_color); // 填充背景颜色
imagettftext($img, 18, 0, 10, 20, $font_color, 'arial.ttf', $code); // 添加文本
header('Content-Type:image/png'); // 设置图像类型
imagepng($img); // 输出图像
imagedestroy($img); // 销毁图片

Vérification du code de vérification PHP :

$code = $_POST['code'];
if($code != $_SESSION['code']){ // 判断验证码是否匹配
    echo '验证码不正确';
}

Résumé :

En filtrant les données d'entrée de l'utilisateur, en vérifiant les données d'entrée de l'utilisateur, en empêchant les attaques par injection SQL, en utilisant des codes de vérification et d'autres mesures, vous pouvez convertir PHP se forme en La sécurité du système a été améliorée à un niveau relativement élevé. Lorsque nous utilisons des formulaires PHP, nous devons prêter attention aux problèmes de sécurité et mettre à jour les programmes du site Web en temps opportun pour empêcher les attaques de pirates.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn