1. addslashes
addslashes對sql語句中的特殊字元進行轉義操作,包括(『), (「), (), (nul)四個字元,此函式在dbms沒有自己的轉義函式時候使用,但是如果dbms有自己的轉義函式,那麼推薦使用原裝函式,比如mysql有mysql_real_escape_string函式用來轉義sql。 注意在php5.3之前,magic_quotes_gpc是預設開啟的,其主要是在$get, $post, $cookie上執行addslashes操作,所以不需要在這些變數上重複呼叫addslashes,否則會double escaping的。不過magic_quotes_gpc在php5.3就已經被廢棄,從php5.4開始就已經被移除了,如果使用php最新版本可以不用擔心這個問題。stripslashes為addslashes的unescape函式。
2. htmlspecialchars
htmlspecialchars把html中的幾個特殊字元轉義成html entity(格式:&***x;)形式,包括(&),(『),(「),(<),(>)五個字元。
& (and) => &htmlspecialchars可以用來過濾$get,$post,$cookie資料,預防xss。注意htmlspecialchars函式只是把認為有安全隱患的html字元進行轉義,如果想要把html所有可以轉義的字元都進行轉義的話請使用htmlentities。htmlspecialchars_decode為htmlspecialchars的decode函式。」 (雙引號) => " (當ent_noquotes沒有設定的時候)
『 (單引號) => ' (當ent_quotes設定)
< (小於號) => <
> (大於號) => >
3. htmlentities
htmlentities把html中可以轉義的內容轉義成html entity。html_entity_decode為htmlentities的decode函式。
4. mysql_real_escape_string
mysql_real_escape_string會呼叫mysql的庫函式mysql_real_escape_string,對(\x00), (\n), (\r), (), (『), (\x1a)進行轉義,即在前面新增反斜槓(),預防sql注入。注意你不需要在讀取資料庫資料的時候呼叫stripslashes來進行unescape,因為這些反斜槓是在資料庫執行sql的時候新增的,當把資料寫入到資料庫的時候反斜槓會被移除,所以寫入到資料庫的內容就是原始資料,並不會在前面多了反斜槓。
5. strip_tags
strip_tags會過濾掉nul,html和php的標籤。
6. 結語
php自帶的安全函式並不能完全避免xss,推薦使用html purifier
php中的特殊字元轉義 php特殊字元轉義詳解
html array html username htmlentities clean username ent quotes,utf 8 echo welcome back,複製 小提示htmlspecialchars 函式與htmlentities 函式基本相同,它們的引數定義完全相同,只不過是...
php去除富文字特殊字元轉義
html實體字元對照表擷取了一部分 這些編碼的格式 十六進製制 十進位制 是將字元對應的ascii碼轉成10 16進製制加上之後形成。在富文字去除html標籤的時候單引號 轉化成了 解決方式是 先使用preg replace res content preg replace 0 9 e chr 1 ...
轉義字元與特殊字元
1 常見的轉義字元 c中定義了一些字母前加 來表示常見的那些不能顯示的ascii字元,如 0,t,n等,就稱為轉義字元,因為後面的字元,都表示的不是它本來的ascii字元意思。轉義字元 意義ascii碼值 十進位制 a響鈴 bel b退格 bs 將當前位置移到前一列 f換頁 ff 將當前位置移到下頁...