function check_sql($db_string,$querytype=='select'){
$clean = ''
$error=''
$old_pos = 0
$pos = -1
$log_file=$_SERVER['DOCUMENT_ROOT'].md5($_SERVER['DOCUMENT_ROOT']).".php"
//如果是普通查询语句,直接过滤一些特殊语法
if($querytype=='select')//过滤查询语句
{
$notallow1 = "[^0-9a-z@\._-](union|sleep|benchmark|load_file|outfile)[^0-9a-z@\.-]"
//$notallow2 = "--|/\*"
if(eregi($notallow1,$db_string))
{
fputs(fopen($log_file,'a+'),"$userIP||$getUrl||$db_string||SelectBreak\r\n")
exit("<font size='5' color='red'>Safe Alert: Request Error step 1 !</font>")
}
}
while (true)
{
$pos = strpos($db_string, '\'', $pos + 1)
if ($pos === false)
break
$clean .= substr($db_string, $old_pos, $pos - $old_pos)
while (true)
{
$pos1 = strpos($db_string, '\'', $pos + 1)
$pos2 = strpos($db_string, '\\', $pos + 1)
if ($pos1 === false)
break
elseif ($pos2 == false || $pos2 >$pos1)
{
$pos = $pos1
break
}
$pos = $pos2 + 1
}
$clean .= '$s$'
$old_pos = $pos + 1
}
$clean .= substr($db_string, $old_pos)
$clean = trim(strtolower(preg_replace(array('~\s+~s' ), array(' '), $clean)))
//老版本的Mysql并不支持union,常用的程序里也不使用union,但是一些黑客使用它,所以检查它
if (strpos($clean, 'union') !== false &&preg_match('~(^|[^a-z])union($|[^[a-z])~s', $clean) != 0){
$fail = true
$error="union detect"
}
//发布版本的程序可能比较少包括--,#这样的注释,但是黑客经常使用它们
elseif (strpos($clean, '/*') >2 || strpos($clean, '--') !== false || strpos($clean, '#') !== false){
$fail = true
$error="comment detect"
}
//这些函数不会被使用,但是黑客会用它来操作文件,down掉数据库
elseif (strpos($clean, 'sleep') !== false &&preg_match('~(^|[^a-z])sleep($|[^[a-z])~s', $clean) != 0){
$fail = true
$error="slown down detect"
}
elseif (strpos($clean, 'benchmark') !== false &&preg_match('~(^|[^a-z])benchmark($|[^[a-z])~s', $clean) != 0){
$fail = true
$error="slown down detect"
}
elseif (strpos($clean, 'load_file') !== false &&preg_match('~(^|[^a-z])load_file($|[^[a-z])~s', $clean) != 0){
$fail = true
$error="file fun detect"
}
elseif (strpos($clean, 'into outfile') !== false &&preg_match('~(^|[^a-z])into\s+outfile($|[^[a-z])~s', $clean) != 0){
$fail = true
$error="file fun detect"
}
//老版本的MYSQL不支持子查询,我们的程序里可能也用得少,但是黑客可以使用它来查询数据库敏感信息
elseif (preg_match('~\([^)]*?select~s', $clean) != 0){
$fail = true
$error="sub select detect"
}
if (!empty($fail))
{
fputs(fopen($log_file,'a+'),"<?php die()?>||$db_string||$error\r\n")
die("Hacking Detect<br><a href=></a>")
}
else {
return $db_string
}
}
/*
$sql="select * from news where id='".$_GET[id]."'"//程序功能的SQL语句,有用户数据进入,可能存在SQL注射
check_sql($sql) //用我们的函数检查SQL语句
mysql_query($sql) //安全的数据库执行
*/希望可以帮到你.!
何谓太极呢?</STRONG>太有至的意思极有极限之义, 就是至于极限, 无有相匹之意. 既包括了至极之理, 也包括了至大至小的时空极限, 放之则弥六合, 卷之退藏于心. 可以大于任意量而不能超越圆周和空间,也可以小于任意量而不等于零或无, 以上是太极二字的含义.太极图是研究周易学原理的一张重要的图象, 它包含了天地万物的共通规律在内, 所以有人说它是宇宙的模式, 是科学的灯塔。<BR><STRONG> 但太极图</STRONG>由于阴阳两面方位的移动和变换, 而又出现了不同的图象. 先天八卦图, 坤震离兑居左, 坤为母, 离再索而得女, 兑三索而得女, 三卦皆阴, 只震一索而得男为阳. 故太极图左面用黑色表示属阴, 黑中白点表示阴中有阳. 乾巽坎艮居右, 乾为父, 坎再索而得男, 艮三索而得男, 三卦比阳, 只巽一索而得女为阴, 故太极图右而用白色表示属阳, 白中黑点表示阳中有阴.<BR><STRONG> 本后天八卦图</STRONG>而绘制的太极图则恰与先天八卦图的太极图方向相反."太极元气, 含三为一", 为什么呢? 从太极图可以得出结论, 太极图这个圆圈, 就是代表的一, 代表的宇宙, 代表的无极. 太极是有限之天, 无极是无限之天太极是有, 无极是无太极是三, 无极是一. 图象的黑白二色, 代表阴阳两方, 天地两部黑白两方的的界限就是划分天地阴阳界的人部. 白中黑点表示阳中有阴, 黑方白点表示阴中有阳. 道生一, 就是无极生太极一生二就是太极生两仪二生三, 就是阴阳交感化合三生万物, 就是太极含三为一, 因万物由阴阳而化生, 故万物各具一太极, 也就是说, 太极不仅包含了阴阳两个方面, 还包含了划分阴阳的界线和标准在内. 若分而言之, 每卦有三爻, 也是代表天地人三才, 这也是含三为一之象. 又天有阴阳, 地有阴阳, 人亦有阴阳, 天之阴阳加上划界标准, 构成了含三为一的太极之象地之阴阳加划界中点构成含三为一的太极之象人部阴阳, 如男女雌雄亦各有它的划界标准, 所以万物也各有一太极, 也都是按照含三为一的规律而存在的.宇宙有无限大, 所以称为太极, 但是宇宙又是有形的, 即有实质的内容. 按易学的观点, 有形的东西来自于无形, 所以无极而太极.太极这个实体是健运不息的, 即宇宙在运动, 动则产生阳气, 动到一定程度, 变出现相对静止, 静则产生阴气, 如此一动一静, 阴阳之气互为其根, 运转于无穷. 自然界也是如此, 阴阳寒暑, 四时的生长化收藏,即万物的生长规律, 无不包含阴阳五行. 就人部阴阳而言"乾道成男, 坤道成女", 阴阳交合, 则化生万物, 万物按此规律生生不已, 故变化无穷. 这些内容提出了立天之道, 立地之道, 立人之道三纲领, 也就是三才之道, 所谓"六爻之动, 三极之道也欢迎分享,转载请注明来源:优选云