Maison  >  Article  >  développement back-end  >  Notes d'étude des fonctions php

Notes d'étude des fonctions php

不言
不言original
2018-04-17 15:57:091832parcourir

Le contenu de cet article est des notes d'étude sur les fonctions PHP, qui ont une certaine valeur de référence. Maintenant, je les partage avec vous. Les amis dans le besoin peuvent s'y référer

tr>
$_SERVER["PHP_SELF"] Une variable superglobale. Renvoie le nom de fichier du script en cours d'exécution.
htmlspacialchars(var) Convertir des caractères spécifiques en entités HTML. Empêche les attaquants d'exploiter le code en injectant du code HTML ou JavaScript dans des formulaires (attaques de cross-site scripting).
$_SERVER["PHP_SELF"] 一种超全局变量。返回当前执行脚本的文件名。
htmlspacialchars(var) 把特定字符转换为HTML实体。可防止攻击者通过在表单中注入HTML或JavaScript代码(跨站点脚本攻击)对代码进行利用。

应用:$_SERVER["PHP_SELF"]变量能够被黑客利用。如果你的页面使用了PHP_SELF,用户能够输入下划线然后执行跨站点脚本(XSS)。 

提示:跨站点脚本(Cross-site scripting,XSS)是一种计算机安全漏洞类型,常见于web应用程序。XSS能够使攻击者向其他用户浏览的网页中输入客户端脚本。

例:test.php页面中有表单:

<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">

如果地址栏中是正常URL:hhtp://www.example.com/test.php,上面代码会转换为:

<form method="post" action="test.php">

一旦输入:http://www.example.com/test.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E,上面代码会转换成:

<form method="post" action="test.php"/><script>alert(&#39;hacked&#39;);</script>

使用htmlspecialchars()函数避免上述情况,表单代码:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

这时输入http://www.example.com/test.php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E,上面代码会转换成:

<form method="post" action="test.php/"><script>alert(&#39;hacked&#39;)</script>"
无法利用,没有伤害。
trim(var) 取出多余的空格、制表符、换行
stripslashes(var) 删除反斜杠()
$_SERVER["REQUEST_METHOD"]  
empty(var) 判断变量是否已经赋予数据且不为空。‘’、null、false、00、0、'0'、未定义、array()、var $var都返回true。
isset(var[,var[,...]]) 检测变量是否已经声明。未定义变量返回true。unset一个变量后,变量被取消了。
is_null(var) 检查值、变量、表达式是否为null。未定义变量传入也会返回true,但是会报错!
defined(var) 检测常量是否已经声明。

1、empty、isset首先都会检查变量是否存在,然后对变量值进行检测。而is_null只是直接检查变量值,是否为null。

2、empty、isset输入参数必须是一个变量,而is_null输入参数只要是能够有返回值就可以(常量,变量,表达式等)。在php手册里,对于他们解析是:empty,isset是一个语言结构而非函数,因此它无法被变量函数调用。

preg_match(正则表达式,变量) 检索字符串的模式,如果模式存在则返回true,否则返回false。
   
   
   
   
   
   
   
   
   
   
   
   
Application : La variable $_SERVER["PHP_SELF"] peut être exploitée par les pirates. Si votre page utilise PHP_SELF, les utilisateurs peuvent saisir un trait de soulignement et exécuter des scripts intersites (XSS).

Conseils : les scripts intersites (XSS) sont un type de vulnérabilité de sécurité informatique courant dans les applications Web. XSS permet aux attaquants de saisir des scripts côté client dans les pages Web consultées par d'autres utilisateurs.

Exemple : Il y a un formulaire dans la page test.php :

Si la barre d'adresse est une URL normale : hhtp://www.example.com/test.php , le code ci-dessus sera converti en :

Une fois saisi : http://www.example.com/test.php/%22%3E%3Cscript%3Ealert('hacked')%3C/ script%3E, ci-dessus Le code sera converti en :

Utilisez la fonction htmlspecialchars() pour éviter la situation ci-dessus. Le code du formulaire :


À ce stade, entrez http://www.example.com/test php/%22%3E%3Cscript%3Ealert('hacked')%3C/script%3E, le code ci-dessus sera converti en :

Impossible être exploité, pas de mal.
trim(var) Supprimer les espaces, tabulations et nouvelles lignes supplémentaires
stripslashes (var) Supprimer la barre oblique inverse()
$_SERVER["REQUEST_METHOD"]
empty(var) Déterminez si la variableLes données ont été attribuées et ne sont pas vides. '', null, false, 00, 0, '0', undefined, array() et var $var renvoient tous true.
isset(var[,var[,...]]) Vérifiez si la variable a été déclarée. Renvoie vrai pour les variables non définies. Après avoir désactivé une variable, la variable est annulée.
is_null(var) Vérifier la valeur, Si les variables et les expressions sont nulles. Passer des variables non définies renverra également vrai, mais une erreur sera signalée !
défini(var) Vérifiez si le constante Déjà déclarée.

1. Empty et isset vérifieront d'abord si la variable. existe, puis détectez la valeur de la variable. Et is_null vérifie simplement la valeur de la variable directement pour voir si elle est nulle.

2. Les paramètres d'entrée vide et isset doivent être une variable, tandis que le paramètre d'entrée is_null peut avoir une valeur de retour (constante, variable, expression, etc.). Dans le manuel PHP, leur analyse est la suivante : vide, isset est une structure de langage plutôt qu'une fonction, il ne peut donc pas être appelé par des fonctions variables.
preg_match(expression régulière, variable) Récupère le modèle de la chaîne, renvoie vrai si le modèle existe, sinon renvoie faux.
td>
Recommandations associées : 10 fonctions PHP peu connues mais très utiles La fonction php ne définit pas la méthode des paramètres

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