Maison  >  Article  >  développement back-end  >  Comment empêcher l'accès direct aux fichiers accessibles via AJAX en PHP ?

Comment empêcher l'accès direct aux fichiers accessibles via AJAX en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-12 00:36:03799parcourir

How to Prevent Direct Access to Files Accessed via AJAX in PHP?

Empêcher l'accès direct aux fichiers accessibles via AJAX

Lors de l'accès à un fichier PHP via une requête AJAX, telle que "func.php", l'accès direct à ce fichier peut constituer un problème de sécurité. Pour résoudre ce problème, il est crucial de mettre en œuvre un mécanisme qui différencie les requêtes AJAX des tentatives d'accès direct.

Une solution efficace consiste à exploiter la variable serveur "HTTP_X_REQUESTED_WITH". La plupart des frameworks AJAX définissent cet en-tête sur "XMLHttpRequest", permettant ainsi de faire la distinction entre les véritables requêtes AJAX et l'accès direct au navigateur. Cette vérification d'en-tête peut être implémentée dans le fichier PHP comme suit :

if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')) {
    // Allow access...
} else {
    // Ignore or deny access...
}

En implémentant cette vérification, vous pouvez vous assurer que seules les requêtes AJAX légitimes peuvent accéder au fichier spécifié, le protégeant ainsi d'un accès direct non autorisé.

De plus, pour une sécurité renforcée, vous pouvez définir manuellement l'en-tête "X-Requested-With" dans votre requête AJAX à l'aide du code JavaScript suivant :

var xhrobj = new XMLHttpRequest();
xhrobj.setRequestHeader("X-Requested-With", "XMLHttpRequest");

Cette étape renforce encore la protection contre les attaques directes. accès aux fichiers.

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