Maison >développement back-end >tutoriel php >Comment empêcher la falsification des données d'un formulaire PHP ?

Comment empêcher la falsification des données d'un formulaire PHP ?

PHPz
PHPzoriginal
2023-08-19 12:05:24881parcourir

Comment empêcher la falsification des données dun formulaire PHP ?

Comment empêcher la falsification des données d'un formulaire PHP ?

Lors du développement de sites Web utilisant PHP, les formulaires sont une méthode d'interaction fréquemment utilisée. Cependant, nous sommes souvent confrontés à un grave problème de sécurité, à savoir le risque de falsification des données du formulaire. Les pirates peuvent effectuer de mauvaises opérations en altérant les données du formulaire, par exemple en soumettant des données de manière malveillante, en modifiant les informations d'autres personnes, etc. Afin d'éviter que cela ne se produise, nous devons ajouter quelques mesures de sécurité à PHP. Ce qui suit présente quelques méthodes courantes pour empêcher la falsification des données des formulaires PHP.

  1. Vérifiez la source du formulaire
    Lorsque le client soumet les données du formulaire au serveur, nous pouvons garantir la légitimité des données en vérifiant la source de la demande. La méthode la plus courante consiste à utiliser la vérification de session ou la vérification de jeton.

Le principe de la vérification de session est que lorsqu'un utilisateur accède au site Web, le serveur lui attribue un identifiant de session unique et enregistre l'identifiant sur le serveur. Lorsque l'utilisateur soumet le formulaire, le serveur comparera si l'ID de session soumis dans le formulaire est cohérent avec l'ID de session enregistré par le serveur. S'ils sont incohérents, la source de données peut être illégale.

Exemple de code :

session_start();
if(isset($_SESSION['token']) && $_POST['token'] == $_SESSION['token']){
    // 验证通过,处理表单数据
}else{
    // 验证失败,提示错误信息
}

Le principe de la vérification du jeton est d'intégrer un jeton généré aléatoirement dans le formulaire et d'envoyer le jeton au serveur lorsque le formulaire est soumis. Une fois que le serveur l'a reçu, il vérifie si le jeton sous la forme est cohérent avec le jeton stocké sur le serveur. S'ils sont cohérents, la vérification réussit.

Exemple de code :

session_start();
if(isset($_POST['token']) && $_POST['token'] == $_SESSION['token']){
    // 验证通过,处理表单数据
}else{
    // 验证失败,提示错误信息
}
  1. Utilisation du protocole HTTPS
    L'utilisation du protocole HTTPS peut protéger la transmission sécurisée des données grâce au cryptage des données. Le protocole HTTPS utilise SSL (Secure Socket Layer) ou TLS (Transport Layer Security) pour crypter le contenu des communications. De cette façon, même si un pirate informatique intercepte les données transmises, il ne peut pas décrypter le contenu, garantissant ainsi l'intégrité et la sécurité des données.

Exemple de code :

if($_SERVER['HTTPS'] != 'on'){
    header("Location: https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
    exit();
}
  1. Vérifiez la légalité des données du formulaire
    En plus de vérifier la source du formulaire, nous devons également vérifier la légalité des données saisies dans le formulaire pour empêcher les pirates d'utiliser des données malveillantes pour soumettre . Par exemple, vous pouvez effectuer une vérification du format du numéro de téléphone mobile, de l'adresse e-mail, du mot de passe, etc. dans le formulaire.

Exemple de code :

if(!preg_match("/^1[3456789]d{9}$/", $_POST['phone'])){
    // 手机号格式不正确,提示错误信息
}

if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
    // 邮箱格式不正确,提示错误信息
}
  1. Crypter et stocker les données sensibles
    Lorsque le formulaire contient des informations sensibles de l'utilisateur, telles que des mots de passe, des numéros d'identification, etc., nous devons crypter les données avant de les stocker dans la base de données. De cette manière, même si un pirate informatique obtient les données de la base de données, il ne pourra pas obtenir les informations sensibles en texte brut.

Exemple de code :

$password = md5($_POST['password']); // 使用MD5加密密码
// 存储到数据库

Résumé :
En vérifiant la source des données du formulaire, en utilisant le protocole HTTPS, en vérifiant la légalité des données et en chiffrant et stockant les données sensibles, nous pouvons efficacement prévenir le risque de falsification des données du formulaire PHP. . Lors du développement, nous devons toujours donner la priorité à la sécurité pour garantir que les données des utilisateurs ne soient pas attaquées par des pirates informatiques.

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