Maison >développement back-end >Problème PHP >Comment éviter les erreurs de variables super globales php

Comment éviter les erreurs de variables super globales php

PHPz
PHPzoriginal
2023-04-10 09:40:32527parcourir

En PHP, les variables superglobales sont des variables globales qui peuvent être utilisées n'importe où dans le script. Ces variables n'ont pas besoin d'être déclarées pour être utilisées, elles sont prédéfinies et déjà initialisées par PHP.

Les variables superglobales PHP courantes incluent $_GET, $_POST, $_COOKIE, $_SESSION, $_SERVER, etc.

L'avantage d'utiliser des variables super globales est que vous pouvez facilement obtenir les données soumises par le formulaire, les informations du navigateur de l'utilisateur, etc. Cependant, certains problèmes peuvent survenir lors de l'utilisation, tels que :

  • Variable non définie : si vous essayez d'utiliser une variable superglobale non définie, une erreur de variable non définie sera générée.
  • La variable est vide : si une variable superglobale ne reçoit aucune donnée, elle sera vide et l'utilisation de cette variable provoquera également une erreur.
  • Les variables sont falsifiées : lors de la soumission des données d'un formulaire, un attaquant peut falsifier des variables super-globales, provoquant des failles de sécurité dans le programme.

Afin d'éviter les erreurs avec les variables superglobales, nous pouvons prendre les mesures suivantes :

  1. Effectuer une vérification des variables

Avant d'utiliser une variable superglobale, vérifiez si elle a été définie et si elle n'est pas vide. Ceci peut être réalisé grâce aux fonctions isset() et empty().

Par exemple, le code suivant peut vérifier si la variable $_GET contient un paramètre nommé "id":

if(isset($_GET['id']) && !empty($_GET['id'])) {
    // 处理 $_GET['id'] 变量
}
  1. Effectuer un filtrage des données

Lorsque vous utilisez des variables superglobales, vous devez vous rappeler de ne pas transmettre directement des données non filtrées. Transmettre dans la base de données ou d'autres opérations sensibles, sinon des problèmes de sécurité tels que l'injection SQL peuvent survenir. Vous pouvez utiliser les fonctions de filtrage intégrées de PHP, telles que addlashes(), htmlentities(), etc.

Par exemple, le code suivant peut utiliser la fonction addlashes() pour filtrer la variable $_POST :

$username = addslashes($_POST['username']);
$password = addslashes($_POST['password']);
  1. Utiliser le protocole HTTPS

Si des variables super globales sont utilisées pour transmettre des informations sensibles, il est recommandé d'utiliser le protocole HTTPS pour une transmission cryptée afin d'éviter la falsification des données ou le vol de questions. Vous pouvez le faire en configurant votre site Web pour utiliser un certificat SSL/TLS.

  1. Activer le mode strict

Il existe une nouvelle fonctionnalité introduite dans PHP 7 appelée mode strict (strict_types). Après avoir activé le mode strict, PHP vérifiera plus strictement les types de données, réduisant ainsi les bugs causés par les erreurs de conversion de type. Le mode strict peut être activé en ajoutant le code suivant en tête du fichier PHP :

declare(strict_types=1);

En bref, lorsque vous utilisez des variables superglobales PHP, veillez à faire attention à la sécurité et à la cohérence. Effectuez un filtrage et une validation rigoureux des données et suivez les meilleures pratiques pour protéger les données des programmes et des utilisateurs.

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