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) //安全的数据库执行
*/希望可以帮到你.!
食管癌病人,已经接受两次放疗,再次放疗风险很高,且效果也会越来越差。此次发现食管狭窄,需要排除放射性狭窄。如果考虑确是肿瘤复发,并且以前没有用过化疗,可以试试化疗,也可以考虑食管支架植入治疗,以解决进食问题。(赵路军大夫郑重提醒:因不能面诊患者,无法全面了解病情,以上建议仅供参考,具体诊疗请一定到医院在医生指导下进行!)
<html><head>
<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312">
<title>仿QQ导航菜单</title>
<style type="text/css">
.titleStyle{
background-color:#008800color:#ffffffborder-top:1px solid #FFFFFFfont-size:9ptcursor:hand
}
.contentStyle{
background-color:#eeffeecolor:bluefont-size:9pt
}
a{
color:blue
}
body{
font-size:9pt
}
</style>
</head>
<body>
<script language="JavaScript">
<!--
var layerTop=20 //菜单顶边距
var layerLeft=30 //菜单左边距
var layerWidth=140 //菜单总宽
var titleHeight=20 //标题栏高度
var contentHeight=200//内容区高度
var stepNo=10//移动步数,数值越大移动越慢
var itemNo=0runtimes=0
document.write('<span id=itemsLayer style="position:absoluteoverflow:hiddenborder:1px solid #008800left:'+layerLeft+'top:'+layerTop+'width:'+layerWidth+'">')
function addItem(itemTitle,itemContent){
itemHTML='<div id=item'+itemNo+' itemIndex='+itemNo+' style="position:relativeleft:0top:'+(-contentHeight*itemNo)+'width:'+layerWidth+'"><table width=100% cellspacing="0" cellpadding="0">'+
'<tr><td height='+titleHeight+' onclick=changeItem('+itemNo+') class="titleStyle" align=center>'+itemTitle+'</td></tr>'+
'<tr><td height='+contentHeight+' class="contentStyle">'+itemContent+'</td></tr></table></div>'
document.write(itemHTML)
itemNo++
}
//添加菜单标题和内容,可任意多项,注意格式:
addItem('欢迎','<BR> 欢迎光临设计在线!')
addItem('网页陶吧','<center><a href="#">网页工具</a><BR><BR><a href="#">技术平台</a><BR><BR><a href="#">设计理念</a><BR><BR><a href="#">更多</a></center>')
addItem('美工教室','<center><a href="#">平面设计 </a><BR><BR><a href="#">三维空间</a><BR><BR><a href="#">设计基础</a><BR><BR><a href="#">更多..</a></center>')
addItem('Flash','<center><a href="#">基础教程</a><BR><BR><a href="#">技巧运用</a><BR><BR><a href="#">实例剖析</a><BR><BR><a href="#">更多..</a></center>')
addItem('多媒体','<center><a href="#">DIRECTOR</a><BR><BR><a href="#">Authorware</a><BR><BR><a href="#">更多..</a></center>')
addItem('精品赏析','<center><a href="#">设计精品</a></center>')
document.write('</span>')
document.all.itemsLayer.style.height=itemNo*titleHeight+contentHeight
toItemIndex=itemNo-1onItemIndex=itemNo-1
function changeItem(clickItemIndex){
toItemIndex=clickItemIndex
if(toItemIndex-onItemIndex>0) moveUp()else moveDown()
runtimes++
if(runtimes>=stepNo){
onItemIndex=toItemIndex
runtimes=0}
else
setTimeout("changeItem(toItemIndex)",10)
}
function moveUp(){
for(i=onItemIndex+1i<=toItemIndexi++)
eval('document.all.item'+i+'.style.top=parseInt(document.all.item'+i+'.style.top)-contentHeight/stepNo')
}
function moveDown(){
for(i=onItemIndexi>toItemIndexi--)
eval('document.all.item'+i+'.style.top=parseInt(document.all.item'+i+'.style.top)+contentHeight/stepNo')
}
changeItem(0)
//-->
</script>
</body>
</html>
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
欢迎分享,转载请注明来源:优选云