Maison  >  Article  >  développement back-end  >  Quelques vulnérabilités de sécurité courantes dans les sites Web PHP et mesures préventives correspondantes

Quelques vulnérabilités de sécurité courantes dans les sites Web PHP et mesures préventives correspondantes

小云云
小云云original
2018-03-13 10:44:013812parcourir


À l'heure actuelle, le développement de sites Web basé sur PHP est devenu le courant dominant du développement de sites Web actuel. L'auteur de cet article se concentre sur l'exploration des attaques de sites Web PHP et la prévention de la sécurité, dans le but de réduire les vulnérabilités des sites Web. J'espère que cela sera utile à tout le monde Utile !

1. Vulnérabilités courantes de sécurité des sites Web PHP
Concernant les vulnérabilités PHP, il existe actuellement cinq vulnérabilités courantes. Il s'agit des vulnérabilités des fichiers de session, des vulnérabilités d'injection SQL, des vulnérabilités d'exécution de commandes de script, des vulnérabilités de variables globales et des vulnérabilités de fichiers. Voici une brève introduction à chacune de ces vulnérabilités.
1. Vulnérabilité du fichier de session
L'attaque de session est l'une des méthodes d'attaque les plus couramment utilisées par les pirates. Lorsqu'un utilisateur visite un certain site Web, afin d'empêcher le client de saisir son numéro de compte et son mot de passe à chaque fois qu'il accède à une page, PHP définit Session et Cookie pour faciliter l'utilisation et l'accès de l'utilisateur.
2. Vulnérabilité d'injection SQL
Pendant le développement d'un site Web, le manque de jugement complet des programmeurs sur les données saisies par l'utilisateur ou un filtrage laxiste amène le serveur à exécuter certaines informations malveillantes, telles que des requêtes d'informations utilisateur, etc. Les pirates peuvent obtenir des informations correspondantes sur la base des résultats renvoyés par les programmes malveillants. Il s'agit de la vulnérabilité d'injection SQL de Yuexingwei.
3. Vulnérabilité d'exécution de script
La cause courante de la vulnérabilité d'exécution de script est que les programmeurs ne filtrent pas les paramètres d'URL soumis par les utilisateurs lors du développement de sites Web. L'URL soumise par les utilisateurs peut contenir du code malveillant, conduisant à des scripts intersites. des attaques. Des vulnérabilités d'exécution de script existaient souvent dans les sites Web PHP précédents, mais avec la mise à niveau des versions PHP, ces problèmes ont été réduits ou n'existent plus.
4. Vulnérabilité globale des variables
Les variables en PHP n'ont pas besoin d'être déclarées à l'avance lorsqu'elles sont utilisées comme les autres langages de développement. Les variables en PHP peuvent être utilisées directement sans déclaration, et le système les crée automatiquement lorsqu'elles sont utilisées. Il n'est pas nécessaire de spécifier le type de variable, le système déterminera automatiquement le type de variable en fonction du contexte. Cette méthode peut réduire considérablement la probabilité que les programmeurs commettent des erreurs de programmation et est très pratique à utiliser.
5. Vulnérabilités des fichiers
Les vulnérabilités des fichiers sont généralement causées par le manque de filtrage adéquat des données fournies en externe par les développeurs de sites Web lors de la conception de sites Web, ce qui incite les pirates à exploiter les vulnérabilités pour exécuter les commandes correspondantes sur le processus Web. Si lsm.php contient un tel morceau de code : include($b."/aaa.php"), pour les pirates, des attaques à distance peuvent être réalisées via la variable $b, qui peut être le propre code du pirate. sites Web. Vous pouvez soumettre a.php include=http://lZ7.0.0.1/b.php au serveur, puis exécuter les instructions de b.php.

2. Mesures préventives pour les vulnérabilités PHP courantes
1. Prévention des vulnérabilités de session
D'après l'analyse précédente, nous pouvons savoir que l'attaque de session la plus courante est le détournement de session, c'est-à-dire que les pirates obtiennent des utilisateurs via diverses attaques méthodes. ID de session, puis utilisez l’identité de l’utilisateur attaqué pour vous connecter au site Web correspondant. Pour cette raison, les méthodes suivantes peuvent être utilisées pour l'empêcher : Tout d'abord, modifiez régulièrement l'ID de session. La modification de l'ID de session peut être réalisée en utilisant la propre fonction de PHP. Deuxièmement, modifiez le nom de la session. Normalement, le nom par défaut de la session. est PHPSESSID. Cette variable est généralement enregistrée dans un cookie. Si son nom est modifié, elle peut bloquer certaines attaques de pirates. La troisième consiste à fermer l'ID de session transparent. Requête http. Lors de l'utilisation de l'ID de session, l'ID de session est transmis à l'aide d'un lien. La désactivation de l'ID de session transparent peut être obtenue en exécutant le fichier PHP.ini ; si un pirate informatique obtient les données de session, les paramètres associés sont masqués. Oui, il est également difficile d'obtenir la valeur de la variable Session ID.
2. Prévention des vulnérabilités d'injection SQL
Les pirates informatiques disposent de nombreuses façons d'injecter du SQL, et elles sont flexibles et modifiables. Cependant, ce que l'injection SQL a en commun est l'utilisation de vulnérabilités de filtrage d'entrée. Par conséquent, afin d'empêcher fondamentalement l'injection SQL, la solution fondamentale consiste à renforcer le filtrage des commandes de requête, en particulier les commandes de requête de requête. Plus précisément, il comprend les points suivants : Premièrement, les instructions de filtrage sont paramétrées, c'est-à-dire que la saisie des informations utilisateur est réalisée via des instructions paramétrées au lieu d'intégrer directement la saisie utilisateur dans les instructions. La deuxième consiste à utiliser le moins de programmes d'interprétation possible lors du développement du site Web. Les pirates informatiques utilisent souvent cette méthode pour exécuter des commandes illégales. La troisième consiste à éviter autant que possible les bogues du site Web lors du développement du site Web, sinon les pirates pourraient utiliser ces informations. pour attaquer le site Web, il ne suffit pas de se défendre contre l'injection SQL. De plus, des outils professionnels d'analyse des vulnérabilités doivent être fréquemment utilisés pour analyser le site Web à la recherche de vulnérabilités.
3. Prévention des vulnérabilités d'exécution de script
Les moyens par lesquels les pirates utilisent les vulnérabilités d'exécution de script pour attaquer sont divers et flexibles. À cette fin, une combinaison de plusieurs méthodes de prévention doit être utilisée pour empêcher efficacement les pirates d'attaquer. vulnérabilités d’exécution de script. Les quatre méthodes suivantes sont couramment utilisées ici. La première consiste à prédéfinir le chemin du fichier exécutable. Ceci peut être réalisé via safe_moade_exec_dir ; la deuxième consiste à traiter les paramètres de commande, généralement en utilisant la fonction escapeshellarg ; la troisième consiste à utiliser la propre bibliothèque de fonctions du système pour remplacer les commandes externes ;
4. Prévenir les vulnérabilités des variables globales
Concernant la vulnérabilité des variables globales PHP, la version précédente de PHP avait un tel problème, mais après la mise à niveau de la version PHP vers 5.5, cela peut être obtenu en définissant php.ini , set ruquest_order vers GPC. De plus, dans le fichier de configuration php.ini, vous pouvez définir une valeur booléenne pour magic_quotes_runtime afin de définir s'il faut ajouter des barres obliques inverses pour déborder les caractères dans les données citées en externe. Afin de garantir que le programme du site Web peut s'exécuter dans n'importe quel état de configuration du serveur. Vous pouvez utiliser get_magic_quotes_runtime pour détecter l'état du paramètre au début de l'ensemble du programme afin de décider de le gérer manuellement, ou utiliser set_magic_quotes_runtime(0) pour le désactiver au début (ou lorsque l'échappement automatique n'est pas nécessaire).
5. Prévention des vulnérabilités des fichiers
Les fuites de fichiers PHP peuvent être évitées en installant et en configurant le serveur. Les opérations spécifiques ici sont les suivantes : premièrement, désactivez les invites d'erreur dans le code PHP, ce qui peut empêcher les pirates d'obtenir des informations sur la base de données et les chemins physiques des fichiers de pages Web via des invites d'erreur ; le répertoire. Traitement ; Cela peut protéger les fichiers locaux ou les fichiers distants pour les empêcher d'être attaqués. Ici, nous devons également faire attention à empêcher les attaques sur les fichiers de session et les fichiers téléchargés. Troisièmement, activez safe-made pour empêcher les commandes de le faire. être exécuté. Standardiser et interdire le téléchargement de fichiers, ce qui peut améliorer efficacement le facteur de sécurité des sites Web PHP.

Recommandations associées :

Résoudre plusieurs méthodes d'attaque courantes dans le développement de sites Web PHP

Comment implémenter un cryptage simple sur l'interface de site Web PHP,

Explication détaillée du processus et des étapes de construction d'un site Web PHP

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