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) //安全的数据库执行
*/希望可以帮到你.!
同意楼上的说法,!((x<y)&&!||1) 的写法应该是有问题的。如果抛开格式不论,考的应该是运算符的优先级和结合性,zsx10110的意思就是表达式是从左到右计算的,无论前面的内容是什么,真或假的话和1的或运算都为1,也就是为真,再取反就变成假了
细菌感染吧!不要喂太多了,锦鲤没有胃,靠直肠消化,容易消化不良,锦鲤耐寒,但抵受不了水温突然变化,容易感冒(感冒体表起雾,身体充血血丝),锦鲤能吃,也很能拉,所以水质要好,要求良好过滤。上述所说的都能引起锦鲤抵抗力下降,容易生病。
建议你去水族买杀霉杀氯杀虫(敌百虫)的药,整个缸全面杀菌再养,一条鱼死了,不换水杀菌别的鱼很容易感染,死去同一种病。如果有鱼异常,厌食或不爱游动离群,证明小锦病了或不舒服,放些粗盐(浓度1000分之2左右)
锦鲤生命力较强而较少发病,但要做好养殖池和鱼体的消毒工作。定期施用生石灰,敌百虫等,对发病鱼应及时诊断和治疗。其常见病的治疗如下:
1、肠炎病。病鱼食欲降低,行动缓慢,常离群独游,鱼体发黑,腹部膨大,肛门外凸红肿,挤压腹壁有黄红色腹水流出。防治可在饵料中每千克拌入0.2克磺胺脒投喂病鱼,连续5天。对发病严重不摄食的鱼,可腹腔注射卡那霉素500--1000国际单位,3--5天即可。
2、水霉病。病鱼体表演或鳍条上寄生有灰白色如棉絮状的菌丝。口服维生素E,每10千克鱼体重每天用0.4--0.6克投喂,可增强抵抗力,对病鱼可用400--500毫克/升食盐溶液和400--500毫克/升碳酸氢钠溶液合剂喷洒。
3、竖鳞病。病鱼体表粗糙,鳞片竖起,鳞基水肿。防治方法:①用2%食盐水溶液浸洗鱼体5--15分钟,每天1次,连浸3--5天。②磺胺嘧啶内服:先把病鱼养在0.5%食盐水中,停食2天,移入清水中,每尾鱼投喂0.2克,隔天1次,连服5次。
4、小瓜虫病。病鱼体表、鳍条和鳃上有白点状的囊泡,严重时病鱼全身皮肤和鳍条布满白点和覆盖着白色的粘液。可用10--15毫克升的福尔马林加1--2毫克/升的亚甲基蓝全池泼洒,隔天1次,连用2--3次。
5、指环虫病。指环虫寄生于鱼的体表和鳃丝上,鳃瓣浮肿,灰白色。防治可用0.2--0.4毫克/升浓度的晶体敌百虫溶液全池泼洒。也可用0.2毫克/升浓度的高锰酸钾溶液浸洗鱼体,时间10--30分钟。
6、烂鳃病 症状 病鱼行动迟缓,体色和头部发黑,严重时鳃丝腐烂,鳃盖有透明小窗 。防治方法 ①漂白粉1ppm浸泡;②呋喃西林1.5ppm~2ppm浸泡;③红霉素0.3ppm浸泡;④ 硫酸铜0.5ppm~0.7ppm泼洒。
另外建议你打开如下网页,那里有锦鲤病状及防治,有图、文对照,很是直观。
http://www.yafish.com/cure/Freshwater/200712/5863.html
欢迎分享,转载请注明来源:优选云