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.

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.

藏色散人
藏色散人avant
2020-03-20 13:28:002464parcourir

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.

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.

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.

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.

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 = 1Supprimez 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

相关推荐:

PHP视频教程:https://www.php.cn/course/list/29/type/2.html    

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer