PHP八大安全函式解析
這個函式對於在PHP中防止SQL注入攻擊很有幫助,它對特殊的字元,像單引號和雙引號,加上了“反斜槓”,確保使用者的輸入在用它去查詢以前已經是安全的了。但你要注意你是在連線著資料庫的情況下使用這個函式。
但現在mysql_real_escape_string()這個函式基本不用了,所有新的應用開發都應該使用像PDO這樣的庫對資料庫進行操作,也就是說,我們可以使用現成的語句防止SQL注入攻擊。
2. addslashes()
這個函式和上面的mysql_real_escape_string()很相似。但要注意當設定檔案php.ini中的magic_quotes_gpc 的值為“on”時,不要使用這個函式。預設情況下, magic_quotes_gpc 為 on,對所有的 GET、POST 和 COOKIE 資料 自動執行 addslashes()。不要對已經被 magic_quotes_gpc 轉義過的字串使用 addslashes(),因為這樣會導致 雙層轉義。你可以通過PHP中get_magic_quotes_gpc()函式檢查這個變數的值。
3. htmlentities()
這個函式對過濾使用者輸入資料非常有用,它可以把字元轉換為 HTML 實體。比如,當用戶輸入字元“<”時,就會被該函式轉化為HTML實體<,因此防止了XSS和SQL注入攻擊。
4. htmlspecialchars()
HTML中的一些字元有著特殊的含義,如果要體現這樣的含義,就要被轉換為HTML實體,這個函式會返回轉換後的字串,比如,‘&’amp會轉為‘&’。
5. strip_tags()
這個函式可以去除字串中所有的HTML,JavaScript和PHP標籤,當然你也可以通過設定該函式的第二個引數,讓一些特定的標籤出現。
6. md5()
一些開發者儲存的密碼非常簡單,這從安全的角度上看是不好的,md5()函式可以產生給定字串的32個字元的md5雜湊,而且這個過程不可逆,即你不能從md5()的結果得到原始字串。
7. sha1()
這個函式和上面的md5()相似,但是它使用了不同的演算法,產生的是40個字元的SHA-1雜湊(md5產生的是32個字元的雜湊)。
8. intval()
不要笑,我知道這不是一個和安全相關的函式,它是在將變數轉成整數型別。但是,你可以用這個函式讓你的PHP程式碼更安全,特別是當你在解析id,年齡這樣的資料時。