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.
Plusieurs paramètres PHP méritent une attention particulière pour une sécurité améliorée:
display_errors
: Réglez ceci sur Off
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érez E_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 utilisant open_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
et allow_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 sur Off
. 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 sur On
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: Scripting de site transversal (XSS):
session.cookie_httponly
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!