我們知道addslashes()函數的作用是在輸入字串中的某些預定義字元前面加上反斜線。那麼它怎麼又與我們的防sql注入扯上關係呢? 什麼又是sql注入呢?
SQL注入攻擊是駭客攻擊網站最常用的手段。如果你的網站沒有使用嚴格的使用者輸入檢驗,那麼常常容易遭到SQL注入攻擊。 SQL注入攻擊通常透過向網站資料庫提交不良的資料或查詢語句
來實現,很可能會使資料庫中的紀錄遭到暴露,更改或被刪除。 本篇文章主要介紹php利用addslashes函數實作sql防注入實例講解,#透過 實例敘述採用addslashes函數對於sql防注入的用處。
範例
參數'a..z'界定所有大小寫字母都被轉義,程式碼如下:
echo addcslashes('foo[ ]','a..z'); //输出:foo[ ] $str="is your name o'reilly?"; //定义字符串,其中包括需要转义的字符 echo addslashes($str); //输出经过转义的字符串
定義和用法:
addslashes() 函數在指定的預定義字元前加上反斜線.
這些預定義字元是:單引號('),雙引號("),反斜線(),null
語法:
addslashes(string)
當然這個函數更安全,實例程式碼如下:
$str="<a href='test'>test</a>"; //定义包含特殊字符的字符串 $new=htmlspecialchars($str,ent_quotes); //进行转换操作 echo $new; //输出转换结果 //不过输出时要用到 $str="jane & 'tarzan'"; //定义html字符串 echo html_entity_decode($str); //输出转换后的内容 echo "<br/>"; echo html_entity_decode($str,ent_quotes); //有可选参数输出的内容
本篇對於PHP安全程式設計來說具有不錯的參考借鏡價值。入,還是建議大家加強中文防止SQL注入的檢查。
其中的0xbf5c仍會被視為單引號,所以addslashes無法成功攔截。節字串的處理【相關文章推薦】:
1.php addslashes()函數與stripslashes()函數實例詳解#2.php stripslashes()函式與addslashes()函式的差異實例詳
#
以上是php利用 addslashes函數實作sql防注入實例講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!