Pourquoi PHP ne peut-il pas accéder aux tableaux externes

PHPz
Libérer: 2023-04-20 14:48:16
original
495 Les gens l'ont consulté

PHP, en tant que langage de script côté serveur très populaire, est couramment utilisé pour développer des sites Web et des applications Web dynamiques. Lorsque les développeurs utilisent PHP, ils ont souvent besoin d'accéder à des tableaux externes pour obtenir et traiter des données. Cependant, certains développeurs rencontrent un problème où ils ne peuvent pas accéder aux baies externes. Alors, pourquoi PHP ne peut-il pas accéder aux tableaux externes ?

Tout d’abord, nous devons comprendre comment fonctionne PHP. PHP est un langage interprété, et son fonctionnement consiste à interpréter le code PHP en instructions que la machine peut comprendre, puis à l'exécuter ligne par ligne. Lors de l'exécution, PHP utilise un tableau interne pour stocker toutes les variables et valeurs. Ce tableau est appelé SuperGlobal Array.

Le tableau superglobal est un concept très important en PHP, qui contient toutes les variables et données du programme PHP. Lorsqu'un programme PHP s'exécute, le tableau superglobal est automatiquement rempli avec les variables et données requises. Un tableau superglobal est un tableau spécial qui peut être utilisé pour partager des données dans une application PHP. Les tableaux superglobaux couramment utilisés incluent $_GET, $_POST, $_COOKIE et $_SESSION, etc.

Cependant, pour des raisons de sécurité, PHP n'autorise pas l'accès aux tableaux externes. Le code qui accède aux baies externes peut entraîner des failles de sécurité, car il permet à un attaquant de falsifier les données sur le serveur ou d'exécuter du code malveillant en construisant une URL spécifique. Par exemple, disons que vous utilisez le code suivant :

$user = $_GET['user'];
$pwd = $_GET['pwd'];

if ($user == 'admin' && $pwd == 'password') {
    echo 'Welcome admin!';
}
Copier après la connexion

Si un attaquant définit l'URL sur www.example.com/login.php?user=admin&pwd=password, il peut alors facilement accéder au système et exécuter un code malveillant susceptible d'endommager le système. En effet, PHP ne peut pas distinguer quels tableaux proviennent de sources légales et lesquels proviennent de sources illégales.

Pour éviter que cela ne se produise, PHP utilise un mécanisme appelé "mode sans échec" qui restreint la possibilité d'accéder à des tableaux externes. Par défaut, le mode sans échec est activé et ne permet pas l'accès aux baies externes. Les développeurs peuvent désactiver le mode sans échec en modifiant les fichiers de configuration PHP, mais cela n'est pas recommandé car cela peut entraîner des risques de sécurité.

De plus, PHP propose également des alternatives pour obtenir et traiter des données externes, comme l'utilisation de tableaux super-globaux tels que $_POST, $_GET et $_REQUEST, et l'utilisation de la bibliothèque cURL pour obtenir des données distantes. Ces fonctions et bibliothèques sont considérées comme sûres car elles disposent de certains mécanismes de contrôle de sécurité.

En résumé, PHP ne peut pas accéder aux tableaux externes pour des raisons de sécurité. Bien que les développeurs ne puissent pas accéder directement aux tableaux externes, ils peuvent utiliser d'autres méthodes fournies par PHP pour obtenir et traiter les données afin d'assurer la sécurité du système.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal