Position actuelle: Accueil> Derniers articles> Utilisez filter_input () pour traiter la saisie des utilisateurs avec crypte ()

Utilisez filter_input () pour traiter la saisie des utilisateurs avec crypte ()

M66 2025-05-22

Dans le développement Web, la saisie des utilisateurs est l'entrée la plus courante et la plus facilement attaquée. Pour améliorer la sécurité du traitement des entrées utilisateur, PHP offre de nombreuses fonctions pratiques, parmi lesquelles Filter_Input () et Crypt () sont deux outils de sécurité très importants. Cet article présentera comment utiliser ces deux fonctions en combinaison pour empêcher efficacement des méthodes d'attaque courantes telles que les XS (attaque de script de site transversale) et la fuite de mot de passe.

1. Introduction à filter_input ()

Filter_Input () est une fonction intégrée en PHP qui obtient et filtre les entrées externes, telles que le poste ou l'obtention de données sous forme. Il peut effectivement prétraiter les données soumises par les utilisateurs pour empêcher les données malveillantes de saisir la couche logique d'application. Par exemple:

 $username = filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING);

Le but de cette ligne de code est d'obtenir des paramètres de nom d'utilisateur à partir de la demande de poste et de supprimer des balises HTML et des caractères spéciaux pour empêcher les attaques de script inter-sites.

2. La capacité de cryptage de crypte ()

Le stockage sécurisé des mots de passe utilisateur est un problème que les développeurs doivent prendre au sérieux. La fonction crypte () fournie par PHP prend en charge une variété d'algorithmes de chiffrement, et l'utilisation recommandée de l'algorithme Blowfish (identifié par la valeur de sel commençant par 2 $ $ ). Le mot de passe chiffré est difficile à casser, et même si la base de données est divulguée, l'attaquant ne peut pas facilement restaurer le mot de passe d'origine.

Exemple d'utilisation:

 $salt = '$2y$10$' . substr(str_replace('+', '.', base64_encode(random_bytes(22))), 0, 22);
$hashedPassword = crypt($password, $salt);

Dans le code ci-dessus, Random_Bytes () est utilisé pour générer une chaîne aléatoire de haute intensité pour s'assurer que le texte chiffré généré est différent même si le mot de passe de chaque utilisateur est le même.

3. Utilisation intégrée pour améliorer la sécurité

L'utilisation de filter_input () et crypt () peut établir un processus de traitement des données sécurisé:

  1. Filtrez d'abord l'entrée de l'utilisateur pour empêcher les XS et l'injection de code;

  2. Utilisez ensuite Crypt () pour crypter et stocker le mot de passe pour empêcher la fuite du mot de passe de texte brut;

  3. Enfin, seul le mot de passe crypté et le nom d'utilisateur sont stockés dans la base de données.

Ce processus de traitement peut effectivement empêcher une série d'attaques Web courantes et fournir une base de sécurité solide pour le site Web.

4. Méthodes pour vérifier les mots de passe

Lorsque vous vous connectez, vous n'avez besoin d'utiliser Crypt () pour comparer le mot de passe soumis par l'utilisateur avec le mot de passe crypté dans la base de données:

 $inputPassword = filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING);
$storedHash = 'Valeur de hachage de mot de passe tiré de la base de données';

if (crypt($inputPassword, $storedHash) === $storedHash) {
    echo "La vérification du mot de passe s'est écoulée";
} else {
    echo "Mot de passe d'erreur";
}

Cette méthode de vérification est sûre et standard et ne nécessite pas que le mot de passe soit restauré en texte clair.

5. Résumé

En combinant Filter_Input () et Crypt () , la sécurité du traitement des entrées utilisateur du site Web peut être considérablement améliorée. Filter_Input () est responsable du filtrage pour prévenir les entrées malveillantes; Crypt () est responsable du chiffrement pour empêcher la fuite de mot de passe. Ces deux fonctions sont indispensables lors de la création d'un système de connexion sécurisé et d'un système de gestion des utilisateurs. Les développeurs doivent développer de bonnes habitudes d'utilisation de ces fonctions pour protéger les utilisateurs et la sécurité du système.