Maison  >  Article  >  développement back-end  >  traitement de sécurité des requêtes Web php

traitement de sécurité des requêtes Web php

不言
不言original
2018-07-05 15:27:411780parcourir

1. La différence entre urlencode et rawurlencode

<?php 
test(&#39;https://tieba.baidu.com/f?kw=2&fr=wwwt&#39;);
test(&#39;:/?= &#&#39;);
test(&#39;测试&#39;);
function test($s)
{
    echo "<b>urlencode(&#39;$s&#39;)</b> = [<b>";
    var_dump(urlencode($s));
    echo "</b>]<br/>";
    echo "<b>rawurlencode(&#39;$s&#39;)</b> = [<b>";
    var_dump(rawurlencode($s));
    echo "</b>]<br/>";
}

//运行结果
urlencode(&#39;https://tieba.baidu.com/f?kw=2&fr=wwwt&#39;) = [
D:\software\wamp\www\linux\webApi\test.php:9:string &#39;https%3A%2F%2Ftieba.baidu.com%2Ff%3Fkw%3D2%26fr%3Dwwwt&#39; (length=54)
]
rawurlencode(&#39;https://tieba.baidu.com/f?kw=2&fr=wwwt&#39;) = [
D:\software\wamp\www\linux\webApi\test.php:12:string &#39;https%3A%2F%2Ftieba.baidu.com%2Ff%3Fkw%3D2%26fr%3Dwwwt&#39; (length=54)
]
urlencode(&#39;:/?= &#&#39;) = [
D:\software\wamp\www\linux\webApi\test.php:9:string &#39;%3A%2F%3F%3D+%26%23&#39; (length=19)
]
rawurlencode(&#39;:/?= &#&#39;) = [
D:\software\wamp\www\linux\webApi\test.php:12:string &#39;%3A%2F%3F%3D%20%26%23&#39; (length=21)
]
urlencode(&#39;测试&#39;) = [
D:\software\wamp\www\linux\webApi\test.php:9:string &#39;%E6%B5%8B%E8%AF%95&#39; (length=18)
]
rawurlencode(&#39;测试&#39;) = [
D:\software\wamp\www\linux\webApi\test.php:12:string &#39;%E6%B5%8B%E8%AF%95&#39; (length=18)
]

Comme le montrent les résultats d'exécution ci-dessus, les deux méthodes urlencode et rawurlencode ont les mêmes résultats lors du traitement des lettres, des chiffres, les symboles spéciaux et le chinois sont les mêmes, la seule différence est le traitement des espaces, le code urlen est traité comme "+", le code brut est traité comme "%20"

2. Fonction strip_tags : supprimez HTML et PHP. tags

Remarque : Cette fonction peut supprimer toutes les chaînes de balises HTML et PHP contenues dans la chaîne. Si les balises HTML et PHP de la chaîne sont erronées à l'origine, par exemple si le symbole supérieur à est manquant, une erreur sera également renvoyée. Cette fonction a la même fonction que fgetss(). fgetss lit le fichier à partir du fichier et supprime les balises html et php.

<?php

echo strip_tags("Hello <b>world!</b>");

Exécuter les résultats

Hello world!

3. Fonction htmlspecialchars, convertir les caractères spéciaux au format HTML

fonction htmlspecialchars() Convertir les caractères prédéfinis aux entités HTML. Les caractères prédéfinis pour
sont :
& (esperluette) devient &
" (guillemet double) devient "
" (guillemet simple) devient "
c882b09cd08a149967b542eddfbf5899 (supérieur à) devient>

<?php
echo htmlspecialchars("This is some <b>bold</b> text.&");

Exécuter le résultat

This is some <b>bold</b> text.&

4. Fonction htmlentities, convertissez tous les caractères en chaînes HTML

Peut-être regrettez-vous encore que les htmlspecialchars ne puissent gérer que 4 balises html, alors maintenant vous ne le regrettez pas. , htmlentities convertit tous les caractères.

<?php

echo htmlentities("<? W3S?h????>");

Résultat d'exécution

<? W3S?h????>

5. ajoute des barres obliques, la fonction renvoie une chaîne avec une barre oblique inverse ajoutée avant les caractères prédéfinis.

Les caractères prédéfinis sont :
Guillemet simple (')
Guillemet double (")
Barre oblique inverse ()
NULL

<?php

echo addslashes(&#39;Shanghai is the "biggest" city in China.&#39;);

Exécuter le résultat

Shanghai is the \"biggest\" city in China.

6. Stripslashes est la chaîne référencée par restaurer addlashes

<?php

echo stripslashes("Who\&#39;s Bill Gates?");

Résultat d'exécution

Who&#39;s Bill Gates?

Ce qui précède est l'intégralité du contenu de cet article, j'espère. cela sera utile à tout le monde. L'apprentissage sera utile. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois >

Cryptage du code source PHP php-beast

Implémentation PHP de l'envoi d'e-mails à l'aide de la boîte aux lettres QQ

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
Article précédent:Comment utiliser le cocket phpArticle suivant:Comment utiliser le cocket php