淺析php過濾html字符串,防止SQL注入的方法
更新時(shí)間:2013年07月02日 15:20:10 作者:
本篇文章是對(duì)php中過濾html字符串,防止SQL注入的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
批量過濾post,get敏感數(shù)據(jù)
$_GET = stripslashes_array($_GET);
$_POST = stripslashes_array($_POST);
數(shù)據(jù)過濾函數(shù)
function stripslashes_array(&$array) {
while(list($key,$var) = each($array)) {
if ($key != 'argc' && $key != 'argv' && (strtoupper($key) != $key || ''.intval($key) == "$key")) {
if (is_string($var)) {
$array[$key] = stripslashes($var);
}
if (is_array($var)) {
$array[$key] = stripslashes_array($var);
}
}
}
return $array;
}
替換HTML尾標(biāo)簽,為過濾服務(wù)
function lib_replace_end_tag($str)
{
if (empty($str)) return false;
$str = htmlspecialchars($str);
$str = str_replace( '/', "", $str);
$str = str_replace("\\", "", $str);
$str = str_replace(">", "", $str);
$str = str_replace("<", "", $str);
$str = str_replace("<SCRIPT>", "", $str);
$str = str_replace("</SCRIPT>", "", $str);
$str = str_replace("<script>", "", $str);
$str = str_replace("</script>", "", $str);
$str=str_replace("select","select",$str);
$str=str_replace("join","join",$str);
$str=str_replace("union","union",$str);
$str=str_replace("where","where",$str);
$str=str_replace("insert","insert",$str);
$str=str_replace("delete","delete",$str);
$str=str_replace("update","update",$str);
$str=str_replace("like","like",$str);
$str=str_replace("drop","drop",$str);
$str=str_replace("create","create",$str);
$str=str_replace("modify","modify",$str);
$str=str_replace("rename","rename",$str);
$str=str_replace("alter","alter",$str);
$str=str_replace("cas","cast",$str);
$str=str_replace("&","&",$str);
$str=str_replace(">",">",$str);
$str=str_replace("<","<",$str);
$str=str_replace(" ",chr(32),$str);
$str=str_replace(" ",chr(9),$str);
$str=str_replace(" ",chr(9),$str);
$str=str_replace("&",chr(34),$str);
$str=str_replace("'",chr(39),$str);
$str=str_replace("<br />",chr(13),$str);
$str=str_replace("''","'",$str);
$str=str_replace("css","'",$str);
$str=str_replace("CSS","'",$str);
return $str;
}
復(fù)制代碼 代碼如下:
$_GET = stripslashes_array($_GET);
$_POST = stripslashes_array($_POST);
數(shù)據(jù)過濾函數(shù)
復(fù)制代碼 代碼如下:
function stripslashes_array(&$array) {
while(list($key,$var) = each($array)) {
if ($key != 'argc' && $key != 'argv' && (strtoupper($key) != $key || ''.intval($key) == "$key")) {
if (is_string($var)) {
$array[$key] = stripslashes($var);
}
if (is_array($var)) {
$array[$key] = stripslashes_array($var);
}
}
}
return $array;
}
替換HTML尾標(biāo)簽,為過濾服務(wù)
復(fù)制代碼 代碼如下:
function lib_replace_end_tag($str)
{
if (empty($str)) return false;
$str = htmlspecialchars($str);
$str = str_replace( '/', "", $str);
$str = str_replace("\\", "", $str);
$str = str_replace(">", "", $str);
$str = str_replace("<", "", $str);
$str = str_replace("<SCRIPT>", "", $str);
$str = str_replace("</SCRIPT>", "", $str);
$str = str_replace("<script>", "", $str);
$str = str_replace("</script>", "", $str);
$str=str_replace("select","select",$str);
$str=str_replace("join","join",$str);
$str=str_replace("union","union",$str);
$str=str_replace("where","where",$str);
$str=str_replace("insert","insert",$str);
$str=str_replace("delete","delete",$str);
$str=str_replace("update","update",$str);
$str=str_replace("like","like",$str);
$str=str_replace("drop","drop",$str);
$str=str_replace("create","create",$str);
$str=str_replace("modify","modify",$str);
$str=str_replace("rename","rename",$str);
$str=str_replace("alter","alter",$str);
$str=str_replace("cas","cast",$str);
$str=str_replace("&","&",$str);
$str=str_replace(">",">",$str);
$str=str_replace("<","<",$str);
$str=str_replace(" ",chr(32),$str);
$str=str_replace(" ",chr(9),$str);
$str=str_replace(" ",chr(9),$str);
$str=str_replace("&",chr(34),$str);
$str=str_replace("'",chr(39),$str);
$str=str_replace("<br />",chr(13),$str);
$str=str_replace("''","'",$str);
$str=str_replace("css","'",$str);
$str=str_replace("CSS","'",$str);
return $str;
}
您可能感興趣的文章:
- php中防止SQL注入的最佳解決方法
- php防止SQL注入詳解及防范
- PHP中防止SQL注入攻擊和XSS攻擊的兩個(gè)簡(jiǎn)單方法
- PHP簡(jiǎn)單實(shí)現(xiàn)防止SQL注入的方法
- php防止sql注入示例分析和幾種常見攻擊正則表達(dá)式
- 探討php中防止SQL注入最好的方法是什么
- PHP登錄環(huán)節(jié)防止sql注入的方法淺析
- PHP+mysql防止SQL注入的方法小結(jié)
- php+mysqli預(yù)處理技術(shù)實(shí)現(xiàn)添加、修改及刪除多條數(shù)據(jù)的方法
- php+mysqli使用預(yù)處理技術(shù)進(jìn)行數(shù)據(jù)庫查詢的方法
- PHP mysqli擴(kuò)展庫 預(yù)處理技術(shù)的使用分析
- PHP防止sql注入小技巧之sql預(yù)處理原理與實(shí)現(xiàn)方法分析
相關(guān)文章
php使用pdo連接報(bào)錯(cuò)Connection failed SQLSTATE的解決方法
這篇文章主要介紹了php使用pdo連接報(bào)錯(cuò)Connection failed SQLSTATE的解決方法,涉及針對(duì)配置文件的修改,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12
php入門教程之Zend Studio設(shè)置與開發(fā)實(shí)例
這篇文章主要介紹了php入門教程之Zend Studio設(shè)置與開發(fā),簡(jiǎn)單分析了Zend Studio模板的設(shè)置與php簡(jiǎn)單開發(fā)商品訂單程序的技巧,需要的朋友可以參考下2016-09-09
php 格式化數(shù)字的時(shí)候注意數(shù)字的范圍
因?yàn)?數(shù)據(jù)庫中 id 可能會(huì)很大 如果使用%d的話,就可能出現(xiàn)因?yàn)槌隽朔秶?而到不到正確的結(jié)果。所以,個(gè)人建議 對(duì)id進(jìn)行格式化的時(shí)候 使用%.0f 比 %d 要 好的多。2010-04-04
圖文詳解phpstorm配置Xdebug進(jìn)行調(diào)試PHP教程
這篇文章主要為大家詳細(xì)的介紹了phpstorm配置Xdebug進(jìn)行調(diào)試PHP教程 ,感興趣的小伙伴們可以參考一下2016-06-06
php實(shí)現(xiàn)圖片上傳并進(jìn)行替換操作
這篇文章主要為大家詳細(xì)介紹了php實(shí)現(xiàn)圖片上傳并進(jìn)行替換操作,講解的很詳細(xì),通俗易懂,感興趣的小伙伴們可以參考一下2016-03-03
一家之言的經(jīng)驗(yàn)之談php+mysql扎實(shí)個(gè)人基本功
在學(xué)習(xí)php的過程中,我們開始就需要注意的問題2008-03-03

