Comment configurer PHP 7 pour la sécurité?
La sécurisation de PHP 7 implique une approche à multiples facettes englobant la configuration du serveur, les paramètres PHP et les pratiques de codage sécurisées. Il ne suffit pas d'installer simplement PHP; Vous devez le durcir activement contre les menaces potentielles. Cela commence par le choix d'un serveur Web robuste et régulièrement mis à jour comme Apache ou Nginx, correctement configuré avec des modules de sécurité activés. Ces serveurs offrent des fonctionnalités telles que MOD_SECURITY (APACHE) ou des fonctionnalités similaires dans Nginx, offrant une première ligne de défense contre les attaques communes. Les mises à jour régulières sont cruciales; Les serveurs obsolètes sont des cibles principales pour les exploits.
Au-delà du serveur Web, la configuration PHP elle-même (généralement php.ini
) a besoin d'une attention particulière. De nombreuses directives ont un impact direct sur la sécurité. Par exemple, les fonctions de désactivation comme exec()
, shell_exec()
, passthru()
, et system()
, sauf si c'est absolument nécessaire, réduit considérablement le risque de vulnérabilités d'injection de commande. De même, la gestion soigneusement des téléchargements de fichiers en vérifiant les types de fichiers, les tailles et les emplacements empêche les attaquants d'exploiter les vulnérabilités liées aux fichiers téléchargés. Enfin, exécutez toujours PHP avec le moins de privilèges possible; Évitez d'exécuter des processus PHP comme racine ou avec des autorisations excessives.
Quels sont les paramètres de sécurité les plus critiques pour ajuster dans PHP 7?
Plusieurs paramètres PHP méritent une attention particulière pour une sécurité améliorée:
-
display_errors
: Réglez ceci surOff
dans un environnement de production. L'affichage des erreurs au public révèle des informations précieuses aux attaquants, en aidant à l'exploitation. Les erreurs de journalisation à un fichier à la place à des fins de débogage. -
error_reporting
: Bien que le développement puisse bénéficier d'une déclaration d'erreur détaillée, les environnements de production doivent utiliser un niveau plus restrictif. ConsidérezE_ALL & ~E_NOTICE & ~E_STRICT
pour supprimer les avertissements moins critiques qui pourraient exposer des informations. -
open_basedir
: restreindre l'accès de PHP à des répertoires spécifiques en utilisantopen_basedir
l'empêche d'accéder à des fichiers à l'extérieur des emplacements désignés. Ceci est crucial pour prévenir l'accès et la manipulation non autorisés. Configurez-le avec soin pour inclure uniquement les répertoires nécessaires. -
allow_url_fopen
etallow_url_include
: Désactivez ces options sauf si vous avez absolument requis. Leur permettant de PHP à accéder à des fichiers distants, créant des vulnérabilités importantes si elle n'est pas gérée avec une extrême prudence. Les désactiver minimise le risque d'attaques d'inclusion de fichiers distantes. -
register_globals
: Assurez-vous que cela est défini surOff
. L'activer introduit un risque de sécurité sévère en permettant à des variables externes d'être directement enregistrées en tant que variables globales, conduisant à des vulnérabilités potentielles. -
session.cookie_httponly
: Le définir àOn
garantit que les cookies de session ne peuvent pas être consultés via Javascript, attirant significativement le risque de scripts transversaux (XSS) qui cible les séances de scripts (XSS) qui ciblent (XSS) des séances cibles (XSS) Rijacking. -
session.use_only_cookies
: Le définir surOn
Forces PHP pour utiliser uniquement les cookies pour la gestion de session, empêcher le détournement de session via des paramètres URL. Le script (XSS) nécessite une combinaison de pratiques de codage sécurisées et d'utilisation des techniques d'interaction de la base de données appropriées:
Injection SQL:
- Requêtes paramétrées (instructions préparées): Utilisez toujours des requêtes paramétrées ou des instructions préparées lors de l'interaction avec les bases de données. Cela empêche les attaquants d'injecter du code SQL malveillant dans vos requêtes. Les bibliothèques de base de données fournissent généralement des fonctions pour créer des instructions préparées.
- Validation d'entrée: Ne faites jamais confiance à l'entrée de l'utilisateur. Désinfecter et valider toutes les données fournies par l'utilisateur avant de l'utiliser dans les requêtes de base de données. Échapper à des caractères spéciaux de manière appropriée pour empêcher l'injection SQL. Utilisez des techniques telles que la liste blanche (n'autorisez que des caractères spécifiques) au lieu de la liste noire (bloquant les caractères indésirables).
- Privilège le moins: Grant les utilisateurs de la base de données uniquement les autorisations nécessaires pour effectuer leurs tâches. Évitez d'accorder des privilèges excessifs qui pourraient être exploités.
Scripting de site transversal (XSS):
- Encodage de sortie: codent toutes les données-appliqués par l'utilisateur avant de les afficher sur une page Web. Utilisez des méthodes de codage appropriées (par exemple, encodage HTML) pour empêcher l'exécution du code JavaScript malveillant.
- Politique de sécurité du contenu (CSP): Implémentez un en-tête CSP pour contrôler les ressources que le navigateur est autorisée à charger, réduisant le risque de souplesse des attaques XSS. empêcher l'injection de scripts malveillants.
- Httponly Cookies: Comme mentionné précédemment, en utilisant empêche les attaques XSS qui ciblent le détournement de session.
- Quelles sont les meilleures pratiques pour sécuriser une application PHP 7 contre les attaques? Il s'agit d'adopter une approche de sécurité holistique:
session.cookie_httponly
- Mises à jour régulières: Gardez PHP, le serveur Web et toutes les dépendances à jour avec les derniers correctifs de sécurité. Les vulnérabilités sont constamment découvertes et les mises à jour en temps opportun sont cruciales.
- Pratiques de codage sécurisées: Suivez les directives de codage sécurisées. Évitez les vulnérabilités communes comme l'injection SQL, le XSS et l'injection de commande. Utilisez des cadres de sécurité et des bibliothèques établis.
- Validation et désinfection des entrées: Valider et désinfecter toute entrée utilisateur rigoureusement. Ne faites jamais confiance aux données fournies par l'utilisateur.
- Audits de sécurité réguliers: Effectuer des audits de sécurité périodiques et des tests de pénétration pour identifier les vulnérabilités.
- Mots de passe et authentification solides: Implémentation de politiques de mot de passe solides et de mécanismes d'authentification sécurisés. Envisagez d'utiliser l'authentification multi-facteurs pour une sécurité améliorée.
- https: Utilisez toujours des HTTP pour crypter la communication entre le client et le serveur. Cela protège les données en transit de l'écoute et de la falsification.
- Sauvegarmes régulières: Sauvegardez régulièrement votre application et votre base de données pour atténuer l'impact des attaques ou une perte de données potentielles.
- application.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel
