PHP中常用的轉義函式

2022-10-06 12:30:15 字數 1425 閱讀 8751

1. addslashes

addslashes對sql語句中的特殊字元進行轉義操作,包括(『), (「), (), (nul)四個字元,此函式在d程式設計客棧bms沒有自己的轉義函式時候使用,但是如果dbms有自己的轉義函式,那麼推薦使用原裝函式,比如mysql有mysqwww.cppcns.coml_real_escape_string函式用來轉義sql。 注意在php5.3之前,magic_quotes_gpc是預設開啟的,其主要是在$get, $ $cookie上執行addslashes操作,所以不需要在這些變數上重複呼叫addslashes,否則會double escaping的。不過magic_quotes_gpc在php5.3就已經被廢棄,從php5.4開始就已經被移除了,如果使用php最新版本可以不用擔心這個問題。stripslashes為addslashes的unescape函式。

2. htmlspecialchars

htmlspecialchars把html中的幾個特殊字元轉義成html entity(格式:&***x;)gicrtgu形式,包括(&),(『),(「),()五個字元。

& (and) => &

」 (雙引號) => " (當ent_noquotes沒有設定的時候)

『 (單引號) => ' (當ent_quotes設定)

< (小於號) => <

> (大於號) => >  

htmlspecialchars可以用來過濾$get,$post,$cookie資料,預防xss。注意htmlspecialchars函式只是把認為有安全隱患的html字元進行轉義,如果想要把html所有可以轉義的字元都進行轉義的話請使用htmlentities。htmlspecialchars_decode為htmlspecialchars的decode函式。程式設計客棧

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中常用的轉義函式

1.addslashes addslashes對sql語句中的特殊字元進行轉義操作,包括 nul 四個字元,此函式在dbms沒有自己的轉義函式時候使用,但是如果dbms有自己的轉義函式,那麼推薦使用原裝函式,比如mysql有mysql real escape string函式用來轉義sql。注意在p...

PHP中常用陣列函式

array search 查詢陣列中是否有對應的值,如果有,返回對應的鍵。array split 刪除陣列中鍵對應的某項 array unshift 向陣列開頭插入一項,如果是索引陣列,索引從0開始重新編序 array shift 刪除陣列開頭一項,如果是索引陣列,索引從0開始重新編序 array ...

php 採集常用函式 PHP 採集程式中常用的函式

獲得當前的指令碼 function get php url if empty server request uri scriptname server request uri nowurl scriptname else scriptname server php self if empty ser...