一、php提交數據過濾的基本原則php
1)提交變量進數據庫時,咱們必須使用addslashes()進行過濾,像咱們的注入問題,一個addslashes()也就搞定了。其實在涉及到變量取值時,intval()函數對字符串的過濾也是個不錯的選擇。html
2)在php.ini中開啓magic_quotes_gpc和magic_quotes_runtime。magic_quotes_gpc能夠把get,post,cookie裏的引號變爲斜槓。magic_quotes_runtime對於進出數據庫的數據能夠起到格式話的做用。其實,早在之前注入很瘋狂時,這個參數就很流行了。shell
3)在使用系統函數時,必須使用escapeshellarg(),escapeshellcmd()參數去過濾,這樣你也就能夠放心的使用系統函數。數據庫
4)對於跨站,strip_tags(),htmlspecialchars()兩個參數都不錯,對於用戶提交的的帶有html和php的標記都將進行轉換。好比尖括號"<"就將轉化爲 "<"這樣無害的字符。
$new = htmlspecialchars("Test", ENT_QUOTES);
strip_tags($text,);cookie
5)對於相關函數的過濾,就像先前的include(),unlink,fopen()等等,只要你把你所要執行操做的變量指定好或者對相關字符過濾嚴密,我想這樣也就無懈可擊了。函數
二、PHP簡單的數據過濾post
1)入庫: trim($str),addslashes($str)
2)出庫: stripslashes($str)
3)顯示: htmlspecialchars(nl2br($str))htm