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安全程序設計來說具有不錯的參考借鑒價值。不過使用addslashes防止SQL注入黑客是有辦法繞過的,也不是那么的安全。很多PHP程序員仍在依靠addslashes防止SQL注
入,還是建議大家加強中文防止SQL注入的檢查。addslashes的問題在 于黑客 可以用0xbf27來代替單引號,而addslashes只是將0xbf27修改為0xbf5c27,成為一個有效的多字節字符,
其中的0xbf5c仍會 被看作是單引號,所以addslashes無法成功攔截。當然addslashes也不是毫無用處,它是用于單字節字符串的處理
【相關文章推薦】:
1.php addslashes()函數和stripslashes()函數實例詳解
2.php stripslashes()函數和addslashes()函數的區別實例詳
以上就是php利用 addslashes函數實現sql防注入實例講解的詳細內容,更多請關注 其它相關文章!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答