多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > php教程 > php過濾html字符串,防止SQL注入的實例代碼

php過濾html字符串,防止SQL注入的實例代碼

來源:程序員人生   發(fā)布時間:2014-02-11 05:08:31 閱讀次數(shù):3887次

php過濾html字符串,防止SQL注入,用函數(shù)把將要寫入到數(shù)據(jù)庫的字符串處理下,過濾非法信息,以及惡意的html代碼!

代碼:

//php 批量過濾post,get敏感數(shù)據(jù)
if (get_magic_quotes_gpc()) {
$_GET = stripslashes_array($_GET);
$_POST = stripslashes_array($_POST);
}

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;
}
//過濾
function htmlencode($str){
if(empty($str)) return;
if($str=="") return $str;
$str=trim($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(chr(13),"<br />",$str);
$str=str_replace("'","''",$str);
$str=str_replace("select","select",$str);
$str=str_replace("SCRIPT","SCRIPT",$str);
$str=str_replace("script","script",$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("cast","cas",$str);
return $str;
}

//解碼
function htmldecode($str){
if(empty($str)) return;
if($str=="") return $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);
return $str;
}

// 函數(shù):string_filter($string, $match_type=1)
// 功能:過濾非法內(nèi)容
// 參數(shù):
// $string 需要檢查的字符串
// $match_type 匹配類型,1為精確匹配, 2為模糊匹配,默認為1
//
// 返回:有非法內(nèi)容返回True,無非法內(nèi)容返回False
// 其他:非法關(guān)鍵字列表保存在txt文件里, 分為普通非法關(guān)鍵字和嚴重非法關(guān)鍵字兩個列表
// 作者:heiyeluren
// 時間:2006-1-18
//
//======================================================================
function lib_lawless_string_filter($string, $match_type=1)
{
//字符串空直接返回為非法
$string = trim($string);
if (empty($string))
{
return false;
}
//獲取重要關(guān)鍵字列表和普通關(guān)鍵字列表
$common_file = "common_list.txt"; //通用過濾關(guān)鍵字列表
$signify_file = "signify_list.txt"; //重要過濾關(guān)鍵字列表
//如果任何列表文件不存在直接返回false,否則把兩個文件列表讀取到兩個數(shù)組里
if (!file_exists($common_file) || !file_exists($signify_file))
{
return false;
}
$common_list = file($common_file);
$signify_list = file($signify_file);

//精確匹配
if ($match_type == 1)
{
$is_lawless = exact_match($string, $common_list);
}

//模糊匹配
if ($match_type == 2)
{
$is_lawless = blur_match($string, $common_list, $signify_list);
}

//判斷檢索結(jié)果數(shù)組中是否有數(shù)據(jù),如果有,證明是非法的
if (is_array($is_lawless) && !empty($is_lawless))
{
return true;
}
else
{
return false;
}
}

//---------------------
// 精確匹配,為過濾服務(wù)
//---------------------
function exact_match($string, $common_list)
{
$string = trim($string);
$string = lib_replace_end_tag($string);

//檢索普通過濾關(guān)鍵字列表
foreach($common_list as $block)
{
$block = trim($block);
if (preg_match("/^$string$/i", $block))
{
$blist[] = $block;
}
}
//判斷有沒有過濾內(nèi)容在數(shù)組里
if (!empty($blist))
{
return array_unique($blist);
}

return false;
}

//----------------------
// 模糊匹配,為過濾服務(wù)
//----------------------
function blur_match($string, $common_list, $signify_list)
{
$string = trim($string);
$s_len = strlen($string);
$string = lib_replace_end_tag($string);

//檢索普通過濾關(guān)鍵字列表
foreach($common_list as $block)
{
$block = trim($block);
if (preg_match("/^$string$/i", $block))
{
$blist[] = $block;
}
}
//檢索嚴重過濾關(guān)鍵字列表
foreach($signify_list as $block)
{
$block = trim($block);
if ($s_len>=strlen($block) && preg_match("/$block/i", $string))
{
$blist[] = $block;
}
}
//判斷有沒有過濾內(nèi)容在數(shù)組里
if (!empty($blist))
{
return array_unique($blist);
}

return false;
}

//--------------------------
// 替換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("&gt", "", $str);
$str = str_replace("&lt", "", $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;

//HTML標(biāo)簽,可以作為擴展過濾
/*
$tags = array("/html", "/head", "/body", "/div", "/span", "/DOCTYPE", "/title", "/link", "/meta", "/style", "/p", "/h1,", "/h2,", "/h3,", "/h4,", "/h5,", "/h6", "/strong", "/em", "/abbr", "/acronym", "/address", "/bdo", "/blockquote", "/cite", "/q", "/code", "/ins", "/del", "/dfn", "/kbd", "/pre", "/samp", "/var", "/br", "/a", "/img", "/area", "/map", "/object", "/param", "/ul", "/ol", "/li", "/dl", "/dt", "/dd", "/table", "/tr", "/td", "/th", "/tbody", "/thead", "/tfoot", "/col", "/colgroup", "/caption", "/form", "/input", "/textarea", "/select", "/option", "/optgroup", "/button", "/label", "/fieldset", "/legend", "/script", "/noscript", "/b", "/i", "/tt", "/sub", "/sup", "/big", "/small", "/hr" );
*/

}

代碼:

引用是直接這樣:
$xxx = htmlspecialchars($_POST['xxx']);
或者
$xxx = htmlspecialchars($_GET['xxx']);

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 最好看的最新中文字幕2018免费视频 | 国产免费福利网站 | 一级毛片真人不卡免费播 | 免费亚洲视频在线观看 | 亚洲天堂一区二区三区 | 欧美精品亚洲精品日韩专区 | 秋霞理论在一l级毛片 | 亚洲精品国产精品乱码不97 | 久久久一区二区三区 | 国产精品香蕉在线观看不卡 | 欧美一级毛片免费看 | 亚洲一级生活片 | 亚洲免费成人在线 | 国产精品第一页第一页 | 影院成人区精品一区二区婷婷丽春院影视 | 五月婷婷在线播放 | 亚洲一区日韩二区欧美三区 | 亚洲 中文 欧美 日韩 在线人 | 欧美日韩在线观看免费 | 新午夜影院 | xxfree性人妖hd | 久久精品久久精品久久精品 | 91精品久久久久亚洲国产 | 成人国产激情福利久久精品 | 久久天天躁夜夜躁狠狠85台湾 | 日本资源在线 | 最新亚洲 | www.视频| 亚洲精品天堂 | 一级做性色a爰片久久毛片 一级做性色a爰片久久毛片免费 | 高清一区二区三区四区五区 | 最近中文字幕免费国语 | 久久精品视频免费 | 亚洲三级中文字幕 | 黄色毛片大全 | 欧美亚洲图区 | 中文字幕在线免费观看视频 | 秋霞麻豆 | 亚洲免费网站观看视频 | 色综合欧美综合天天综合 | 中文字幕永久视频 |