addslashes | 過濾危險字元前面加\ 。 |
stripslashes | 還原將\拿掉。 |
htmlspecialchars | 只針對部份特殊字元處理, 所以未指定字串實際編碼時,仍然可以正確運作。 |
htmlentities | 針對全部字元處理,所以若未指定字串正確編碼時,就會出現亂碼,因為預設是 ISO 編碼,修改編碼方式,htmlentities($str, ENT_QUOTES, 'UTF-8')。 |
htmlspecialchars | 解譯htmlspecialchars_decode。 |
mysql_real_escape_string | 轉義SQL 語句中使用的字符串中的特殊字符。 |
過濾掉ch(xx) | preg_replace("/ch(.*?)/","",$str) |
防止 SQL injection 最好的方式是用 PDO ,不用過濾字也不會有這問題,因為他SQL語句跟變數是分開發送,但舊版的程式要全部改成 PDO 工程浩大,所以還是要用上述方法來防範,XSS攻擊可用 htmlspecialchars 、htmlentities 作防範,全過一次過濾可以用 array_walk_recursive、array_map。