Maison >développement back-end >tutoriel php >PHP utilise la fonction addlashes pour implémenter l'explication de l'exemple de prévention des injections SQL

PHP utilise la fonction addlashes pour implémenter l'explication de l'exemple de prévention des injections SQL

怪我咯
怪我咯original
2017-05-22 12:00:264188parcourir

Nous savons que la fonction addlashes() ajoute une barre oblique inverse avant certains caractères prédéfinis dans la chaîne d'entrée. Alors, quel est le rapport avec notre injection anti-sql ? Qu'est-ce que l'injection SQL ?

L'attaque par injection SQL est la méthode la plus couramment utilisée par les pirates pour attaquer les sites Web. Si votre site n'utilise pas de validation stricte des entrées utilisateur, il est souvent vulnérable aux attaques par injection SQL. Les attaques par injection SQL sont généralement mises en œuvre en soumettant des données incorrectes ou des instructions de requête

à la base de données du site, ce qui peut entraîner l'exposition, la modification ou la suppression des enregistrements de la base de données. Cet articleprésente principalementphp utilise la fonction addlashes pour implémenter des exemples d'anti-injection SQL ,via L'exemple décrit l'utilisation de la fonction addlashes pour empêcher l'injection SQL.

Exemple

Le paramètre 'a..z' délimite toutes les lettres majuscules et minuscules à échapper, le code est le suivant :

echo addcslashes('foo[ ]','a..z'); //输出:foo[ ] 
$str="is your name o'reilly?"; //定义字符串,其中包括需要转义的字符 
echo addslashes($str);  //输出经过转义的字符串

Définition et utilisation :

La fonction addlashes() ajoute une barre oblique inverse avant les caractères prédéfinis spécifiés.

Ces caractères prédéfinis sont : guillemet simple ('), guillemet double (") , backslash(), null

Syntaxe :

addslashes(string)

Bien sûr, cette fonction est plus sûre, l'exemple de code est le suivant :

$str="<a href=&#39;test&#39;>test</a>"; //定义包含特殊字符的字符串 
$new=htmlspecialchars($str,ent_quotes);  //进行转换操作 
echo $new;           //输出转换结果 
//不过输出时要用到 
$str="jane & &#39;tarzan&#39;";  //定义html字符串 
echo html_entity_decode($str);   //输出转换后的内容 
echo "<br/>"; 
echo html_entity_decode($str,ent_quotes); //有可选参数输出的内容

Ceci L'article concerne le programme de sécurité PHP. La conception a une bonne valeur de référence. Cependant, il existe des moyens de contourner l'utilisation des addlashes pour empêcher les pirates par injection SQL, et ce n'est pas si sûr De nombreux programmeurs PHP s'appuient encore sur les addlashes pour empêcher les injections SQL<.>

, il est recommandé de renforcer la vérification pour empêcher l'injection SQL en chinois. Le problème avec les addlashes est que les pirates peuvent utiliser 0xbf27 pour remplacer les guillemets simples, tandis que les addlashes ne font que modifier 0xbf27 à 0xbf5c27, qui devient valide. Les caractères multi-octets dans

sont toujours considérés comme des guillemets simples, donc les barres obliques ajoutées ne peuvent pas intercepter avec succès

Bien sûr, les addlashes ne sont pas inutiles. Il est utilisé pour traiter des chaînes à un octet[Articles connexes recommandés] :

1.

Explication détaillée des exemples de fonction php addlashes() et la fonction stripslashes()

2.

Exemples détaillés de la différence entre la fonction php stripslashes() et la fonction addlashes()

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