PHP offre aux développeurs une grande flexibilité, mais cela entraîne également des risques de sécurité potentiels. Je dois résumer ici les problèmes passés dans un avenir proche et ajouter quelques sentiments de mon propre développement pour le résumer.
Lors du développement d'un service Internet, vous devez toujours garder à l'esprit la notion de sécurité et reflété dans le code développé. Le langage de script PHP ne se soucie pas des problèmes de sécurité, surtout pour la plupart des développeurs inexpérimentés. Chaque fois que vous parlez d'une transaction impliquant des questions d'argent, vous devez accorder une attention particulière aux considérations de sécurité, telles que le développement d'un forum ou d'un panier d'achat.
Ne faites pas confiance au formulaire
Pour la vérification générale du front-end Javascript, car le comportement de l'utilisateur ne peut pas être connu. Par exemple, la désactivation du moteur JavaScript du navigateur POSTera des données malveillantes sur le serveur. La vérification doit être effectuée côté serveur, en vérifiant les données transmises à chaque script php pour éviter les attaques XSS et les injections SQL
Ne faites pas confiance à l'utilisateur
Partez du principe que chaque données reçues par votre site Web Chaque élément de données contient du code malveillant et des menaces cachées Chaque élément de données doit être nettoyé
Fermer les variables globales
Effectuez la configuration suivante dans le php.ini. fichier :
register_globals = Off
Si cette option de configuration est activée, il y aura de grands risques de sécurité. Par exemple, il existe un fichier de script process.php qui insérera les données reçues dans la base de données. Le formulaire pour recevoir les données saisies par l'utilisateur peut être le suivant :
<input name="username" type="text" size="15" maxlength="64">
<🎜. >
De cette façon, après avoir soumis les données à process.php, php enregistrera une variable $username et soumettra ces données de variable à process.php. En même temps, une telle variable sera définie pour toute requête POST ou GET. paramètres. Si l'initialisation ne s'affiche pas, le problème suivant se produira (référence : http://www.lai18.com/content/434606.html)
<?php // Define $authorized = true only if user is authenticated if (authenticated_user()) { $authorized = true; } ?>
Ici, il est supposé que la fonction Authenticated_user doit déterminer la valeur de la variable $authorized. Si la configuration Register_globals est activée, alors n'importe quel utilisateur peut envoyer une demande pour définir la valeur de la variable $authorized sur n'importe quelle valeur à contourner. cette vérification.
Toutes ces données soumises doivent être obtenues via le tableau global intégré prédéfini de PHP, notamment $_POST, $_GET, $_FILES, $_SERVER, $_REQUEST, etc., où $_REQUEST est un $_GET/$ _POST/$_COOKIE est une variable commune de trois tableaux. L'ordre par défaut est $_COOKIE, $_POST, $_GET.
Options de configuration de sécurité recommandées
Définissez error_reporting sur Off : ne pas exposer les informations d'erreur aux utilisateurs. Vous pouvez le définir sur ON pendant le développement
Définissez safe_mode sur Off.
Définissez register_globals sur Off
Désactivez les fonctions suivantes : system, exec, passthru, shell_exec, proc_open, popen
Définissez open_basedir sur /tmp, afin que les informations de session puissent être autorisations stockées et définir un répertoire racine de site Web distinct
; expose_php est défini sur Off
;allow_url_fopen est défini sur Off
;allow_url_include est défini sur Off
La série d'articles techniques "PHP Security Programming Series" est compilée et collectée
La collection PHP Security Programming Series recueille des connaissances sur la programmation de sécurité PHP et fournit une référence d'apprentissage pour la programmation de sécurité PHP
1discuz php empêche la fonction d'injection SQL
Méthode 2php pour empêcher les attaques XSS
3PHP programmation sécurisée : échapper à la sortie
Programmation sécurisée 4PHP : filtrer les entrées de l'utilisateur
Programmation sécurisée 5PHP : convivialité et données suivi
6 Programmation sécurisée PHP : Ne laissez pas les personnes non pertinentes voir le message d'erreur
Programmation sécurisée 7PHP : sécurité de register_globals
Programmation sécurisée 8PHP : quelques principes de conception de la sécurité des sites Web
Programmation de sécurité 9PHP : à propos de l'usurpation de formulaire soumission
10Programmation sécurisée PHP : usurpation de requête HTTP
11Programmation sécurisée PHP : ne pas exposer la base de données Autorisations d'accès
12 Programmation sécurisée PHP : Défense contre la falsification de requêtes intersites CSRF
13 Programmation sécurisée PHP : formulaires et Sécurité des données
14 Programmation de sécurité PHP : attaques issues de la sémantique des URL
15 Programmation de sécurité PHP : défense contre Attaques par téléchargement de fichiers
Programmation sécurisée 16PHP : défense contre les attaques de scripts intersites
Programmation sécurisée 17PHP : session corrigée pour obtenir une session légitime
18Programmation sécurisée PHP : empêcher l'injection SQL
19Programmation sécurisée PHP : l'exposition aux cookies mène à la session détournement d'avion
20Programmation sécurisée PHP : évitez l'exposition du code source
21Programmation sécurisée PHP : faites attention aux URL de porte dérobée
22Programmation sécurisée PHP : défense contre le détournement de session
23Programmation sécurisée PHP : attaque par force brute
Programmation sécurisée 24PHP : reniflage de mots de passe et attaques par relecture
Programmation sécurisée 25PHP : pratiques sûres pour mémoriser l'état de connexion
Programmation sécurisée 26PHP : injection de commandes Shell
Programmation sécurisée 27PHP : risques liés à l'ouverture de fichiers distants
28Programmation sécurisée PHP : vulnérabilité de devinette du répertoire de fichiers
Programmation sécurisée 29PHP : empêcher la manipulation des noms de fichiers
30Programmation sécurisée PHP : le fichier contient des attaques par injection de code
31Programmation sécurisée PHP : meilleure sécurité des données de session
32PHP Secure Programmation : Sécurité du code source de l'hébergement mutualisé
Programmation de sécurité 33PHP : injection de données de session
Programmation de sécurité 34PHP : hôte navigation dans le répertoire de fichiers
Programmation sécurisée 35PHP : mode sans échec PHP
La sécurité 36php utilise $ pour obtenir la valeur directement à la place de $_GET Caractère s'échappant
37stratégie de prévention des vulnérabilités PHP pour créer un Web haute performance
38Quelle attaque XSS ? PHP empêche la fonction d'attaque XSS
39 Méthodes pour analyser PHP pour empêcher la soumission répétée de formulaires
40php security dog vison à queue
41PHP empêche la soumission de formulaires inter-domaines
42php empêche l'explication détaillée et la prévention de l'injection SQL
43php Empêcher les exemples de code d'injection SQL
44php Empêcher l'analyse d'exemples d'injection SQL et plusieurs expressions régulières d'attaque courantes
45PHP Sécurité : empêchez l'exposition de votre code source ou de vos informations de configuration importantes
46 Un exemple simple de PHP empêchant la soumission répétée de données dans les publications
47Méthode PHP pour empêcher la soumission de données falsifiées à partir d'une URL
48Résumé PHP de plusieurs méthodes courantes pour empêcher la soumission répétée de formulaires
Méthode 49php pour empêcher la soumission de données falsifiées à partir de l'URL de la barre d'adresse
Méthode 50php pour empêcher la soumission de formulaires à distance hors site
51 Exemples de paramètres de pagination de filtre PHP pour empêcher l'injection SQL
52 Attaques de sécurité PHP et solutions pouvant être rencontrées lors de l'installation en mode Apache
53 Sécurité du système de fichiers et mesures préventives pour la sécurité PHP
54 Sécurité du système de fichiers pour la sécurité PHP - Problème de caractère nul
55 Sécurité de la base de données de sécurité PHP - Injection SQL et mesures préventives
56 Introduction à la sécurité PHP et principes généraux
Sécurité 57PHP : attaques possibles et solutions lors de l'installation en mode CGI
Sécurité 58PHP : soumise par l'utilisateur data
59PHP Security Database Security - Conception, connexion et cryptage
60PHP Security Magic Quotes - Que sont les citations magiques et comment les utiliser
61PHP Security Hidden PHP Script Extension
62PHP Security Use Register Globals
63Rapport d'erreurs de sécurité PHP
64méthodes PHP pour empêcher l'actualisation malveillante et l'actualisation des tickets
65php Résumé des méthodes pour empêcher l'actualisation du site Web
66Fulnérabilités de sécurité courantes du site Web PHP et résumé des mesures préventives correspondantes
Recommandations associées :
Résumé connexe des problèmes de sécurité dans PHP development_PHP tutoriel
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!