Maison  >  Article  >  développement back-end  >  Comment interdire la lecture de fichiers en php

Comment interdire la lecture de fichiers en php

PHPz
PHPzoriginal
2023-03-29 10:12:39748parcourir

Ces dernières années, avec le développement rapide d'Internet et la popularité des sites web, PHP est progressivement devenu un langage indispensable au développement Web. Cependant, lors du développement d’un site Web mature, vous rencontrez souvent des problèmes de sécurité qui nécessitent une attention particulière. Parmi eux, interdire à PHP de lire des fichiers est un problème de sécurité très important. Cet article explorera les méthodes spécifiques et l'importance de l'interdiction de lire des fichiers en PHP.

1. Pourquoi devez-vous interdire à PHP de lire des fichiers ?

Tout d'abord, nous devons préciser que PHP est un langage puissant côté serveur qui peut facilement lire n'importe quel fichier sur le serveur. Cependant, cette fonctionnalité, si elle est mal utilisée, peut présenter un risque important pour la sécurité du serveur. Par conséquent, il faut interdire à PHP de lire des fichiers pour assurer la sécurité du serveur.

Si PHP peut lire des fichiers sur le serveur à volonté, n'importe qui peut exécuter des commandes dangereuses en appelant la fonction exec ou la fonction système, comme supprimer des fichiers importants, modifier des données sensibles, etc. De cette façon, la sécurité des données du serveur sera grandement menacée. Afin de protéger la sécurité de divers fichiers et données sur le serveur, nous devons interdire à PHP de lire des fichiers.

2. Comment empêcher PHP de lire des fichiers ?

Désactiver PHP de la lecture des fichiers est une tâche relativement fastidieuse et nous demande de faire beaucoup de travail pour obtenir l'effet souhaité. Ci-dessous, nous présenterons en détail comment interdire à PHP de lire des fichiers sous les aspects suivants :

1 Interdire à PHP d'appeler la fonction exec et la fonction système

La fonction exec et la fonction système sont deux fonctions couramment utilisées en PHP, et. ils peuvent exécuter certains programmes ou commandes externes. Dans certains cas, cette fonctionnalité est indispensable. Cependant, sur un serveur Web, si quelqu'un peut accéder à ces fonctions, cela entraînera un risque de sécurité important, ces deux fonctions doivent donc être restreintes.

Il existe une option Disable_functions dans le fichier de configuration php.ini de PHP, où nous pouvons limiter les fonctions appelées. Si vous devez désactiver les fonctions exec et système, vous pouvez ajouter le contenu suivant à Disable_functions :

disable_functions = exec, system

De cette façon, PHP interdira d'appeler ces deux fonctions.

2. Interdire à PHP d'accéder à des répertoires spécifiques

Certains fichiers et données importants sont stockés sur le serveur, et ces fichiers et données sont très sensibles. Si PHP peut accéder librement à ces fichiers et répertoires, cela constituera une grande menace pour la sécurité du serveur.

Nous devons donc configurer un serveur Web tel qu'Apache ou Nginx pour interdire à PHP d'accéder à des répertoires spécifiques. Le contenu suivant peut être ajouté au fichier de configuration du serveur web :

[Samedi 13 janvier 18:55:07 2018] [erreur] [client xxx.xxx.xxx.xxx] Le fichier n'existe pas : /var/www /html/ phpmyadmin/php
[Samedi 13 janvier 19:15:02 2018] [erreur] [client xxx.xxx.xxx.xxx] Avertissement PHP : file_get_contents(/var/www/html/wp
[Samedi 13 janvier 19 :17 : 27 2018] [erreur] [client xxx.xxx.xxx.xxx] Le fichier n'existe pas : /var/www/html/test

En regardant les journaux d'accès Apache et Nginx, nous trouverons de nombreux enregistrements d'erreurs similaires comme ci-dessus, /var/www/html/ est le répertoire racine du Web. Nous pouvons créer un nouveau répertoire, tel que /var/www/html/phpdata/, pour stocker nos fichiers et données sensibles, puis configurer Apache ou. Nginx. Serveur Web, interdisez à PHP d'accéder à ce répertoire

3 Interdire à PHP d'accéder aux fichiers

La méthode pour interdire à PHP d'accéder aux fichiers est également très simple, c'est-à-dire en définissant les autorisations de lecture et d'écriture du fichier, nous pouvons empêcher PHP de lire. Obtenez le fichier spécifié

Nous pouvons utiliser la commande chmod pour définir les autorisations du fichier sur 600 ou 700. De cette façon, le propriétaire du fichier (généralement l'administrateur) peut lire ou. écrire, mais les autres utilisateurs ne peuvent pas le lire ou l'écrire. Vous pouvez utiliser la commande suivante pour définir les autorisations :

$ chmod 600 filename
$ chmod 700 dirname

En bref, afin de protéger la sécurité du serveur, nous Il est nécessaire d'interdire à PHP de lire les fichiers. Nous pouvons restreindre les fonctions PHP, l'accès au serveur Web, les autorisations de fichiers et d'autres méthodes peuvent obtenir le même effet

3.Résumé

Interdire à PHP de lire des fichiers est une mesure de sécurité importante qui peut protéger efficacement. la sécurité du serveur lors de l'écriture d'applications Web. , faites toujours attention aux problèmes de sécurité et prenez une série de mesures pour éviter d'être attaqué par des pirates informatiques. J'espère que cet article pourra vous aider à mieux protéger la sécurité de votre serveur.

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:
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