首頁 >後端開發 >php教程 >php web請求安全處理

php web請求安全處理

不言
不言原創
2018-07-05 15:27:411799瀏覽

1、urlencode和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)
]

從上面的執行結果可以看出,urlencode和rawurlencode兩個方法在處理字母數字,特殊符號,中文的時候結果都是一樣的,唯一的不同是對空格的處理,urlencode處理成“ ”,rawurlencode處理成“ ”

2、函數strip_tags:去掉HTML 及PHP 的標記

注意:本函數可去掉字符串中包含的任何HTML 及PHP 的標記字符串。若是字符串的 HTML 及 PHP 標籤原來就有錯,例如少了大於的符號,則也會傳回錯誤。而本函數和 fgetss() 有著相同的功能。 fgetss是從文件中讀取文件,並且去掉html和php標記。

<?php

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

運行結果

Hello world!

3、函數htmlspecialchars, 將特殊字符轉成HTML 格式

##htmlspecialchars() 函數把預先定義的字符轉換為HTML 實體。 預先定義的字元是:
& (和號)變成&
"(雙引號)變成"
'(單引號)變成 '
f642bb9039bad9de3f0723a30debc427(大於)成為>

#

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

運行結果






This is some <b>bold</b> text.&
4、函數htmlentities,將所有的字元都轉成HTML 字串

#或許你還在遺憾htmlspecialchars只能處理4個html標記,那麼現在你不要遺憾了, htmlentities是轉換全部字元。

<?php

echo htmlentities("<? W3S?h????>");
運行結果
<? W3S?h????>

5、addslashes,函數會傳回在預定義字元之前新增反斜線的字串。

預先定義字元是:單引號(')
雙引號(")

反斜線(\)###NULL###
<?php

echo addslashes(&#39;Shanghai is the "biggest" city in China.&#39;);
###執行結果# ##
Shanghai is the \"biggest\" city in China.
###6、stripslashes是還原addslashes引用的字串。###
<?php

echo stripslashes("Who\&#39;s Bill Gates?");
###運行結果###
Who&#39;s Bill Gates?
###以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!######相關推薦:#########php cocket的使用方法###############PHP原始碼php -beast加密###############PHP 利用QQ信箱傳送郵件的實作#########

以上是php web請求安全處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn