Maison >interface Web >js tutoriel >Améliorer la sécurité PHP : 8 configurations PHP par défaut qui doivent être modifiées_compétences Javascript

Améliorer la sécurité PHP : 8 configurations PHP par défaut qui doivent être modifiées_compétences Javascript

WBOY
WBOYoriginal
2016-05-16 16:31:161783parcourir

Évidemment, PHP Mysql Apache est une technologie Web très populaire. Cette combinaison est puissante, évolutive et gratuite. Cependant, les paramètres par défaut de PHP ne conviennent pas aux sites Web déjà en ligne. Renforçons la politique de sécurité de PHP en modifiant le fichier de configuration par défaut !

0x01 : Désactiver la fonction de traitement des fichiers URL à distance

La fonction de traitement de fichiers comme fopen accepte le paramètre rul du fichier (par exemple : fopen('http://www.yoursite.com','r')).). Cette fonction peut facilement accéder aux ressources distantes. Cependant, il s'agit d'une menace de sécurité très importante. C'est un bon choix de désactiver cette fonctionnalité pour limiter la fonction de fichier. Apportez les modifications suivantes dans le fichier php.ini :
.

Copier le code Le code est le suivant :

allow_url_fopen = Désactivé

0x02 : Désactiver l'enregistrement des variables globales

Dans les versions antérieures à 4.2.0, PHP utilise des variables globales en entrée. Cette fonction s'appelle register_globals. Elle pose de nombreux problèmes de sécurité dans les applications Web car elle permet aux attaquants de manipuler facilement les variables globales dans certaines situations, heureusement cette fonctionnalité. est désactivé par défaut dans la version 4.2.0. Il est très dangereux et doit être désactivé en toutes circonstances. Si certains scripts nécessitent cette fonctionnalité, ils présentent alors une menace potentielle pour la sécurité. Modifiez pnp.ini pour désactiver cette fonctionnalité :

Copier le code Le code est le suivant :

register_globals = Désactivé

0x03 : Limiter les opérations de lecture et d'écriture PHP

Dans de nombreux processus de développement Web, les scripts php doivent lire et écrire sur le système de fichiers local, tel que /var/www/htdocs/files. Afin d'améliorer la sécurité, vous pouvez modifier les autorisations de lecture et d'écriture des fichiers locaux. :

Copier le code Le code est le suivant :

open_basedir = /var/www/htdocs/files

0x04 : Limite de pose

Limiter le temps d'exécution de PHP, l'utilisation de la mémoire, la publication et le téléchargement des données est la meilleure stratégie. Vous pouvez la configurer comme suit :

Copier le code Le code est le suivant :

max_execution_time = 30 ; Temps d'exécution maximum du script
max_input_time = 60 ; Temps maximum passé à analyser l'entrée
memory_limit = 16M ; Mémoire maximale utilisée par un script
upload_max_filesize = 2M ; Taille maximale du fichier de téléchargement
post_max_size = 8M ; Taille maximale de la publication

0x05 : Désactiver les messages d'erreur et activer la journalisation

Dans le paramètre par défaut, PHP affichera un message d'erreur au navigateur. Pendant le processus de développement de l'application, ce paramètre par défaut est la configuration la plus raisonnable. Cependant, il peut également divulguer certaines informations de sécurité à l'utilisateur, telles que. le chemin d'installation et le nom d'utilisateur. Sur les sites Web déjà développés, il est préférable de désactiver les messages d'erreur et de les afficher dans un fichier journal.

Copier le code Le code est le suivant :

display_errors = Désactivé
log_errors = Activé

0x06 : Masquer le fichier PHP

S'il n'y a pas de fichier PHP caché, nous pouvons obtenir la version PHP du serveur par différentes méthodes, telles que : http://www.example.com/script.php?=PHPB8B5F2A0-3C92-11d3- A3A9-4C7B08C10000

Nous ne souhaitons évidemment pas que les utilisateurs puissent obtenir directement la version PHP du serveur de votre site Web. Heureusement, il existe un commutateur dans php.ini pour désactiver cette fonctionnalité :

Copier le code Le code est le suivant :

expose_php = Désactivé

0x07 : Configuration du mode sans échec

Par défaut, PHP peut être configuré en mode sans échec. Dans ce mode, Apache interdit l'accès aux fichiers, aux variables d'environnement et aux programmes binaires. En mode sans échec, le plus gros problème est que seul le propriétaire du fichier peut y accéder. Fichier PHP. Si de nombreux développeurs travaillent ensemble pour développer ce programme, ce paramètre n'est pas pratique. Lorsque vous devez accéder à un fichier PHP, vous devez modifier le propriétaire du fichier. Un autre problème est que d'autres programmes ne peuvent pas y accéder. fichier, la configuration suivante peut modifier les autorisations du fichier sur le groupe d'utilisateurs au lieu d'un seul utilisateur.

Copier le code Le code est le suivant :

safe_mode = Désactivé
safe_mode_gid = Activé

En activant safe_mode_gid, ce groupe utilisant Apache pourra accéder aux fichiers PHP. Le mode sans échec est également très efficace pour empêcher l'exécution des fichiers binaires. Cependant, les développeurs peuvent souhaiter pouvoir exécuter certains fichiers binaires dans certaines circonstances. Dans ces cas particuliers, les fichiers binaires peuvent être placés dans un répertoire, tel que (/var/www/binaries), et les paramètres suivants peuvent être définis :

Copier le code Le code est le suivant :

safe_mode_exec_dir = /var/www/binaries

Enfin, grâce aux paramètres suivants, vous pouvez accéder aux variables d'environnement du serveur, fournir un préfixe séparé par "_", afin que seules les variables d'environnement avec le préfixe spécifié soient accessibles :

Copier le code Le code est le suivant :

safe_mode_allowed_env_vars = PHP_

0x08 : Restreindre l'accès des utilisateurs publics aux fichiers avec des suffixes spécifiques

Pour des raisons de sécurité, de nombreux fichiers portant des noms de suffixe spécifiques ne sont pas accessibles aux utilisateurs publics, tels que les fichiers portant le suffixe .inc, qui contiennent des informations sensibles, telles que les informations de connexion MySQL, alors s'il n'y a pas de configuration appropriée. each Chaque utilisateur peut accéder à ce fichier de configuration. Afin d'améliorer la sécurité du site Web, vous devez configurer les éléments suivants dans le fichier ..htaccess :

Copier le code Le code est le suivant :


Commande autoriser, refuser
Nier de tous

0x09 : Résumé

La configuration par défaut de PHP est destinée aux développeurs. Si le site Web est destiné à un grand nombre d'utilisateurs, il est recommandé de reconfigurer PHP.

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