Position actuelle: Accueil> Derniers articles> Protection de sécurité du site Web de PHP et CGI: une stratégie efficace pour empêcher les pirates

Protection de sécurité du site Web de PHP et CGI: une stratégie efficace pour empêcher les pirates

M66 2025-06-20

Protection de sécurité du site Web de PHP et CGI: une stratégie efficace pour empêcher les pirates

Avec le développement continu d'Internet, les problèmes de sécurité du site Web sont devenus particulièrement importants. En tant que langages de programmation Web couramment utilisés, PHP et CGI affectent directement l'effet de protection de la sécurité du site Web. Afin de résister aux attaques de pirates, les développeurs doivent renforcer les mesures de protection de la sécurité pendant le processus de développement. Cet article présentera en détail certaines méthodes de protection de la sécurité et des exemples de code connexes de PHP et CGI pour aider les développeurs à améliorer efficacement la sécurité de leurs sites Web.

1. Vérification des entrées utilisateur

La contribution des utilisateurs est la plus facilement exploitée par les pirates sur le site Web. En vérifiant et en filtrant strictement l'apport des utilisateurs, le risque d'être attaqué peut être réduit efficacement. Voici quelques méthodes courantes de vérification de l'entrée::

1.1 Filtrage d'entrée de chaîne

Pour l'entrée de chaîne, les fonctions de filtrage peuvent être utilisées pour nettoyer l'entrée de l'utilisateur pour éviter les attaques d'injection.

$ input = $ _get ['input'];
$ filteredInput = filter_var ($ input, filter_sanitize_string);

1.2 Vérification des entrées numériques

Pour les entrées numériques, utilisez la fonction `is_numeric ()` pour vérifier que la valeur d'entrée est un nombre valide.

$ input = $ _get ['input'];
if (! is_numeric ($ entrée)) {
    die ("entrée non valide");
}

1.3 Vérification spécifique du format d'entrée

Pour les entrées dans des formats spécifiques tels que les adresses e-mail ou les URL, des expressions régulières peuvent être utilisées pour la vérification.

$ email = $ _get ['e-mail'];
if (! preg_match ("/ ^ [\ w -] + (\. [\ w -] +) * @ ([\ w -] + \.) + [a-za-z] {2,7} $ /", $ email)) {
    Die ("e-mail non valide");
}

2. Sécurité du mot de passe

Les mots de passe sont un moyen important de protéger la sécurité des comptes d'utilisateurs, et l'amélioration de la sécurité des mots de passe est une mesure clé pour empêcher les pirates.

2.1 Utilisation de la fonction de hachage de mot de passe

Lors du stockage des mots de passe utilisateur, le mot de passe doit être crypté et stocké à l'aide d'une fonction de hachage pour empêcher la fuite du mot de passe.

$ mot de passe = $ _post ['mot de passe'];
$ hashedpassword = mot de passe_hash ($ mot de passe, mot de passe_default);
// Stockage $ HashEdPassword à la base de données

2.2 Définir les exigences de force du mot de passe

Définissez les exigences de résistance au mot de passe, telles que la longueur et la complexité du mot de passe, et obligez les utilisateurs à utiliser un mot de passe plus sécurisé.

$ mot de passe = $ _post ['mot de passe'];
if (strlen ($ mot de passe) <8) {
    Die ("La longueur du mot de passe est d&#39;au moins 8 chiffres");
}

3. Sécurité de téléchargement de fichiers

La fonction de téléchargement de fichiers est l'une des fonctionnalités courantes du site Web, mais il s'agit également d'un risque de sécurité potentiel. Voici quelques mesures courantes pour améliorer la sécurité du téléchargement de fichiers:

3.1 Vérification du type de fichier

Lors du téléchargement de fichiers, vous devez vérifier l'extension de fichier ou le type MIME pour éviter de télécharger des fichiers malveillants.

$ file = $ _files [&#39;file&#39;];
$ allowedextensions = [&#39;jpg&#39;, &#39;png&#39;, &#39;gif&#39;];
$ allowingmimeTypes = [&#39;image / jpeg&#39;, &#39;image / png&#39;, &#39;image / gif&#39;];

if (! in_array (pathinfo ($ file [&#39;name&#39;], pathinfo_extension), $ perteeDextensions) || 
    ! in_Array ($ file [&#39;type&#39;], $ allowingMiMetypes)) {
    Die ("Le téléchargement de ce type de fichier n&#39;est pas autorisé");
}

3.2 Sécurité du chemin de stockage de fichiers

Assurez-vous que le chemin de stockage après le téléchargement de fichiers est sûr et évitez les problèmes de sécurité causés par la fuite du chemin du fichier.

$ SAVEPATH = &#39;/ PATH / TO / SAVE&#39;;
$ filename = uniqid (). &#39;.jpg&#39;; // utilise le nom de fichier unique move_uploaded_file ($ _ fichiers [&#39;file&#39;] [&#39;tmp_name&#39;], $ savepath. &#39;/&#39;. $ Filename);

4. Protection par injection SQL

L'injection SQL est l'une des méthodes d'attaque courantes. Voici des moyens courants de prévenir l'injection SQL:

4.1 Utilisation de déclarations de prétraitement

L'utilisation de instructions de prétraitement pour lier les paramètres peut effectivement empêcher les attaques d'injection SQL.

$ username = $ _post [&#39;username&#39;];
$ mot de passe = $ _post [&#39;mot de passe&#39;];
$ stmt = $ PDO-> Préparer ("SELECT * dans les utilisateurs où le nom d&#39;utilisateur =: nom d&#39;utilisateur et mot de passe =: mot de passe");
$ stmt-> exécuter ([&#39;: nom d&#39;utilisateur&#39; => $ nom d&#39;utilisateur, &#39;: mot de passe&#39; => $ mot de passe]);

4.2 Utilisation de la requête paramétrée

Grâce à une requête paramétrée, la saisie de l'utilisateur est transmise à la base de données comme paramètres de requête pour empêcher l'injection malveillante.

$ username = $ _post [&#39;username&#39;];
$ mot de passe = $ _post [&#39;mot de passe&#39;];
$ stmt = $ PDO-> Préparer ("SELECT * FROM Users Where Username =? et Password =?");
$ stmt-> exécuter ([$ username, $ mot de passe]);

en conclusion

Pour résumer, en renforçant la vérification des entrées des utilisateurs, en améliorant la sécurité des mots de passe, en assurant la sécurité du téléchargement de fichiers et en empêchant l'injection de SQL, la sécurité du site Web peut être efficacement améliorée et le risque d'attaques de pirates peut être réduit. Au cours du processus de développement du site Web, ces mesures de sécurité doivent être prêtes à l'attention pour protéger la sécurité de l'information du site Web et des utilisateurs.