Maison  >  Article  >  développement back-end  >  Quelles sont les vulnérabilités des fonctions couramment utilisées en PHP ?

Quelles sont les vulnérabilités des fonctions couramment utilisées en PHP ?

慕斯
慕斯original
2021-06-18 16:19:112486parcourir

L'article précédent vous présentait "Comment uploader des fichiers en PHP ? À quoi devons-nous faire attention ? 》, cet article continue de vous présenter quelles sont les vulnérabilités des fonctions couramment utilisées en PHP ? Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Quelles sont les vulnérabilités des fonctions couramment utilisées en PHP ?

Vulnérabilités dans les fonctions couramment utilisées en PHP :

  • extraire la vulnérabilité de couverture variable

  • fonction d'extraction : importe les variables du tableau dans la table des symboles actuelle. On peut le trouver dans certains frameworks mvc

  • Extract function definition: int extract(array,extract_ Rules,prefix)

  • extract0 La fonction sera vérifiez si chaque nom de clé est un nom de variable légal et vérifiez également s'il est en conflit avec un nom de variable existant dans la table des symboles. La gestion des noms de clés illégaux et conflictuels sera déterminée en fonction de ce paramètre.

extract_rules :

  • EXTR_ OVERWRITE - Par défaut. En cas de conflit, les variables existantes sont écrasées.

  • EXTR_ SKIP - En cas de conflit, les variables existantes ne seront pas écrasées.

  • EXTR_ PREFIX SAME - S'il y a un conflit, préfixez le nom de la variable avec le préfixe

  • EXTR_ PREFIX ALL - Donnez toutes les variables. noms Ajouter un préfixe.

  • EXTR_ PREFIX. INVALID - Ajoutez uniquement un préfixe avant les noms de variables illégaux ou numériques

  • EXTR_ IF. valeurs des variables du même nom uniquement si elles existent déjà dans la table des symboles actuelle. D'autres ne sont pas traités.

  • EXTR_PREFIX_IF _EXISTS - Uniquement lorsqu'une variable avec le même nom existe déjà dans la table des symboles actuelle. Créez un nom de variable avec un préfixe attaché et rien d'autre ne sera traité.

  • EXTR_REFS - Extraire les variables comme références. La variable importée fait toujours référence à la valeur du paramètre array.

Nous utilisons le code comme exemple pour démontrer l'impact de la fonction d'extraction sur la table de couverture actuelle :

Nous créons d'abord un fichier, par exemple, il y a un nom dans la table de couverture actuelle, puis nous sortons cette variable,

<?php
$name = &#39;好久不见&#39;;
echo $name;
?>

Le résultat du code est le suivant :

Quelles sont les vulnérabilités des fonctions couramment utilisées en PHP ?

Ensuite, nous utilisons la fonction d'extraction, puis nous définissons un tableau, qui écrasera silencieusement la couverture actuelle. Les variables du tableau signifient que le "Long Time No See" que nous venons d'écrire sera écrasé. Le code est le suivant :

<?php
$name = &#39;好久不见&#39;;
extract(array(&#39;name&#39;=>&#39;再见&#39;));
echo $name;
?>

Le code. les résultats sont les suivants :

Quelles sont les vulnérabilités des fonctions couramment utilisées en PHP ?

Apprentissage recommandé : "Tutoriel vidéo PHP"

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