Maison > Article > développement back-end > Il y a 3 paramètres incorrects dans la configuration du php.ini qui entraîneront des problèmes de sécurité pour le site Web.
Tous les sites Web de code source PHP doivent configurer l'environnement. Qu'ils utilisent un environnement intégré ou qu'ils le construisent manuellement, peu de personnes ont peut-être prêté attention aux fonctions de ces éléments configurés dans php.ini
. . Lors de la création de fichiers, je trouve toujours un didacticiel sur Internet, puis ils me disent où ajouter et supprimer en fonction des étapes, mais il y a en réalité deux paramètres ici qui peuvent causer des problèmes de sécurité sur le site Web.
Certaines personnes diront comment un fichier php.ini
peut-il avoir des problèmes de sécurité ? Est-il possible qu'un randonneur attaque mon fichier php.ini
?
Ce n'est pas vrai, mais le mode course offrira une fenêtre au randonneur. Veuillez consulter les étapes de configuration ci-dessous.
Prenons l'exemple de l'installation de windows
sur le système PHP
. Les paramètres de toutes les versions du fichier php.ini
sont presque les mêmes. Allez d'abord sur le site officiel pour télécharger le PHP requis. version, puis décompressez-la et renommez-la.
En supposant l'installationphp7.4
, installez-le dans le répertoire racine du lecteur D du serveur : Téléchargez la version Non-Thread Safe (NTS) du programme PHP, puis décompressez-le, renommez-le en "php" dossier et copiez-le. Accédez au répertoire racine du lecteur D.
Ouvrez le fichier D:php
sous php.ini-development
, faites-en une copie et renommez-le en php.ini
, ouvrez le fichier D:phpphp.ini
, voici le processus de configuration complet.
1. Remplacez short_open_tag = Off
par
short_open_tag = On
L'effet de cette modification est que certains sites Web utilisent des fichiers modèles tels que ? >Ce type de code PHP peut garantir que le code peut être exécuté normalement. Ce type de code est également courant dans les modèles tels que ecshop, dedecms et WordPress.
2. Remplacez expose_php = On
par
expose_php = Off
Pour des raisons de sécurité du site Web, il est interdit d'afficher le numéro de version de PHP pour empêcher d'autres personnes d'attaquer le site Web pour des vulnérabilités spécifiques de la version de PHP. Pour certains sites Web, si vous utilisez des outils pour les webmasters pour les vérifier, vous verrez en un coup d'œil quel serveur Web ils utilisent et quelle version de PHP ils utilisent. Bien sûr, les randonneurs connaissent les vulnérabilités spécifiques de la version de PHP, même s'ils ne peuvent pas cacher le numéro de version. on dit que cela résout le problème, cela augmentera la difficulté de la randonnée.
3. Recherchez le code suivant
; On windows: ; extension_dir = "ext"
Supprimez le point-virgule devant extension_dir ici et remplacez ext par le chemin d'installation de PHP, comme indiqué ci-dessous. Attention à ne pas écrire les barres obliques à l'envers, car j'ai installé PHP sur le lecteur D.
extension_dir = "D:\php\ext"
4. Recherchez max_execution_time = 30
et changez le numéro 30
en 300
ou 1200
. La fonction correspond à la durée maximale d'exécution de chaque script. La valeur par défaut est de 30 secondes, ce qui résout le problème selon lequel la connexion peut toujours expirer en raison de la vitesse du réseau et de l'adresse du serveur (comme les hôtes étrangers).
5. Recherchez ;cgi.force_redirect = 1
, supprimez le point-virgule devant et remplacez le numéro 1
par 0
. cgi.force_redirect = 0
signifie fermer la redirection pour exécuter le fichier PHP. Pour des raisons de sécurité, cela empêche les autres de télécharger des chevaux de Troie pour exécution, tels que : l'url de votre site Web/as = votre site Web url/sdf/muma.php
Un tel fichier PHP de redirection est exécutable et. will Une fois cette configuration passée à 0, ce type de fichier PHP redirigé ne sera pas exécuté.
C'est aussi la raison pour laquelle certains sites Web sont toujours bloqués. Après cette modification, même s'il y a une faille de sécurité à la réception du site Web et que le fichier cheval de Troie est téléchargé par le randonneur, le fichier cheval de Troie sera téléchargé. ne fonctionne pas de cette façon, donc cela ne sert à rien.
6. Trouvez le code ;cgi.fix_pathinfo=1
, supprimez le point-virgule et remplacez le numéro 1
par 0
. La fonction est d'interdire l'analyse des fichiers php illégaux. Un fichier php sous une image telle que /a.jpg/1.php
est illégal. Le régler sur 0 désactive l'exécution. Ce type de fichier qui télécharge un cheval de Troie déguisé en image existe depuis longtemps. Il est interdit d'exécuter de tels fichiers. Même si un cheval de Troie est téléchargé, il est inutile car il n'est pas autorisé à s'exécuter.
7. Trouvez le code fastcgi.impersonate = 1
Supprimez le point-virgule devant. La fonction est que iis
ou nginx
utilise la méthode fastcgi
pour analyser les fichiers php. S'il n'est pas activé, le programme php ne peut pas être exécuté. Apache n'a pas besoin d'être activé.
8. Recherchez cgi.rfc2616_headers = 0
, supprimez le point-virgule et remplacez 0
par 1
. Cela signifie dire à php quel en-tête utiliser. Comme celui-ci : HTTP/1.1
.
9. Recherchez upload_tmp_dir =
, supprimez le point-virgule précédent et ajoutez le chemin comme suit :
upload_tmp_dir = D:\php\temp
signifie le répertoire temporaire de téléchargement de fichiers, qui est un répertoire virtuel temporaire utilisé pour stocker les fichiers. téléchargé sur le site Web, mais aucun fichier n’y sera réellement téléchargé.
10. Recherchez respectivement les codes suivants, un par ligne, et supprimez le point-virgule devant celui-ci (le point-virgule représente un commentaire, ce qui signifie qu'il ne prendra pas effet. Il prendra effet si vous le supprimez). ):
extension=bz2 extension=curl extension=gd2 extension=gmp extension=mbstring extension=php_mysql.dll extension=mysqli extension=pdo_mysql
11. Recherchez date.timezone =
Supprimez le point-virgule et remplacez-le par ce qui suit :
date.timezone = Asia/Shanghai
注意大小写,意思是格式化时间,默认使用北京时间(东8区),这样可以使服务器时间和程序的时间一致,否则可能你发文章显示的时时间会和实际时间不一样,如果不设置时间可能会相差8小时,也可以设置为date.timezone = PRC
,设置时区为中国时区,PRC是中国时区的简称。
以上就是完整的php.ini文件配置,真的有3处设置和网站的安全有关系,由于这个文件一般只会设置一次,之后都不会去更改,所以有的问题也不容易被发现。
本文来自:https://baijiahao.baidu.com/s?id=1660324056472707757&wfr=spider&for=pc
相关推荐:
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!