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) //安全的数据库执行
*/希望可以帮到你.!
您好,女性出现下腹疼痛,多数是妇女病,也可以有内科病和外科病。因此,女性一旦出现下腹疼痛,应认真辨别疼痛性质,以求及时得到治疗。 1、由炎症引起的疼痛:多见于附件炎和盆腔炎,多发生于育龄妇女,疼痛在一侧或两侧,同时伴有白带增多。慢性者往往呈现出隐痛,腰酸痛或有坠胀感;急性者往往表现为腹痛拒按,并伴有发烧。 2、由月经引起的疼痛:妇女在经期出现下腹疼痛和全身不适多是生理现象,若疼痛剧烈则为痛经。青春期多为原发性痛经,可自愈;而经后发作的痛经多为某种疾病导致的,应早早就医,不能用止痛药来解决问题。 3、由某种妇科疾病引起的腹痛:如子宫内膜异位症往往在卵巢、子宫、直肠附近形成包块,可使经前期及经期腹痛加剧,性交痛亦是其特点之一。又如盆腔出血或瘀血内停,可导致盆腔疼痛,疼痛常表现为一侧大腿根部。 4、由排卵引起的腹痛:在排卵期内出现下腹部胀痛感,这是由于卵泡破裂所致。一般来说,这种疼痛并不影响健康,也无不良后果,但有极少数人因排卵期卵泡破孔较大,损伤?br>*�茉斐陕殉财屏咽垢骨荒诔鲅��纬筛究萍敝ⅲ�氲揭皆褐瘟啤?/P>5、由生理畸形引起的腹痛:常见的有处女膜闭锁、阴道横膈等,症见青春期月经来潮、经血排出受阻而腹痛,其疼痛与月经关系甚为密切,且呈周期性发作,需手术矫治。 6、由肿瘤引起的腹痛:肿瘤引起的腹痛、腹胀、腰痛和下坠感,一般是持续存在的。 若肿瘤发生扭转、破裂、出血,则往往出现突发性腹痛,这是肿瘤的“自我暴露”,通常需要立即手术治疗。 7、由妊娠引起的腹痛:月经过期或已知怀孕的妇女,突然下腹正中阵阵收缩样痛或阴道流血,多见是流产先兆。宫外孕引起的下腹疼痛,通常来热凶险。由于腹腔内出血,病人会感到肛门下坠、便意频频、脸色苍白、头晕疲软,甚至出现休克状态,要立即手术。 8、由急性阑尾炎引起的腹痛:疼痛始于上腹,后逐渐转移到右下腹,同时表现为恶心、呕吐、不想吃东西、发烧、右下腹不敢按压。此病应尽快上医院急诊欢迎分享,转载请注明来源:优选云