Empêcher l'accès direct aux fichiers en PHP
Dans le monde du développement Web, il est essentiel de contrôler l'accès aux fichiers sensibles, en particulier ceux destinés uniquement pour inclusion dans d’autres scripts. Un problème courant survient lorsque ces fichiers sont accessibles directement via l'URL, ce qui entraîne des failles de sécurité potentielles.
Pour répondre à ce problème, PHP propose une solution simple qui vous permet de restreindre l'accès direct aux fichiers inclus. En mettant en œuvre une simple vérification conditionnelle, vous pouvez dissuader les tentatives non autorisées d'exécuter directement ces fichiers.
Pour mettre en œuvre efficacement cette protection, suivez ces étapes :
1. Vérifiez la source du référent
Ouvrez le fichier PHP que vous avez l'intention d'utiliser exclusivement comme inclusion. Ajoutez le code suivant au début du fichier :
if (!isset($_SERVER['HTTP_REFERER'])) { die('Direct access not permitted'); } $current_url = $_SERVER['HTTP_REFERER']; $allowed_url = 'https://example.com/page_that_includes_this_file.php'; if ($current_url != $allowed_url) { die('Direct access not permitted'); }
2. Définir une constante
Dans le fichier PHP qui inclut le fichier protégé, ajoutez le code suivant au début :
define('MY_CONSTANT', TRUE);
Explication :
Le premier morceau de code vérifie si la requête provient de l'URL de référence attendue (dans ce cas, la page qui doit inclure le fichier). Si le référent n'est pas défini ou ne correspond pas à l'URL autorisée, il génère un message d'erreur.
La partie suivante du code définit une constante nommée "MY_CONSTANT" dans le fichier d'inclusion. Sur les pages qui l'incluent, vous définissez cette constante sur TRUE, garantissant que la page peut accéder légitimement au fichier.
En implémentant ce mécanisme, vous pouvez efficacement empêcher l'accès direct au fichier d'inclusion, garantissant ainsi son intégrité et empêcher une exécution non autorisée.
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!