ASP网页编程之ASP防注进之办理计划--增强版
实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。防注进|办理<%ASP防注进之办理计划
特别页面处置
由于有些页经由过程流式传送(好比含有文件上传的表单)
假如单一利用穷举Form工具的操纵就会堕落
以是要把这些页面过滤出来,同时在页面中利用sql("检测的字串")才行
渣滓猪zero@new57.com
http://blog.csdn.net/cfaq
将本页用include办法放在头部以让一切页都能够挪用,好比include在conn.asp里
假如有流式上传的页面请把该页加到表page中,以防form抵触
DimN_no,N_noarray,req_Qs,req_F,N_i,N_dbstr,Conn,N_rs,N_userIP,N_thispage
N_userip=Request.ServerVariables("REMOTE_ADDR")
N_thispage=LCase(Request.ServerVariables("URL"))
N_no="|;|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"能够本人修正嫌疑是注进操纵的字串
N_noarray=split(LCase(N_no),"|")
CallDBopen()
CallN_check_Qs()
CallN_checkPage()
CallDBCLose()
检测以后页是不是是特别页是就挪用N_check_form()
subN_checkPage()
setN_rs=server.CreateObject("ADODB.RecordSet")
N_rs.open"select*frompagewherespcpagelike%"&N_thispage&"%",conn,1,1
if(N_rs.eofANDN_rs.Bof)then
CallN_check_form()
endif
N_rs.Close()
setN_rs=nothing
endsub
检测给定字串
subN_sql(agsql)
这里是不纪录数据库,假如要改请本人修正
N_check"CUS",req_Qs,"OTHER"
endsub
检测Request.Form
subN_check_form()
IfRequest.Form""Then
ForEachreq_FInRequest.Form
N_checkreq_F,Request.Form(req_F),"POST"
Next
endif
endsub
检测Request.QueryString
subN_check_Qs()
IfRequest.QueryString""Then
ForEachreq_QsInRequest.QueryString
N_checkreq_Qs,Request.QueryString(req_Qs),"GET"
Next
endif
endsub
检测
subN_check(ag,agsql,sqltype)
ForN_i=0ToUbound(N_noarray)
IfInstr(LCase(agsql),N_noarray(N_i))0Then
callN_regsql(ag,agsql,sqltype)
Response.Write"MO"
endif
Next
endsub
纪录并中断输入
ag称号
agsql内容
sqltype范例
subN_regsql(ag,agsql,sqltype)
if(sqltype"OTHER")then
Conn.Execute("insertintoSqlIn(Sqlin_IP,SqlIn_Web,SqlIn_FS,SqlIn_CS,SqlIn_SJ)values("&N_userip&","&N_thispage&","&sqltype&","&ag&","&agsql&")")
endif
Response.Write"<ScriptLanguage=JavaScript>alert(请不要在参数中包括不法字符实验注进!);</Script>"
Response.Write"<spanstyle=font-size:12px>不法操纵!体系做了以下纪录↓<br>"
Response.Write"操纵IP:"&N_userip&"<br>"
Response.Write"操纵工夫:"&Now&"<br>"
Response.Write"操纵页面:"&N_thispage&"<br>"
Response.Write"提交体例:"&sqltype&"<br>"
Response.Write"提交参数:"&ag&"<br>"
Response.Write"提交数据:"&agsql&"</span>"
Response.end
endsub
SubDBopen()
N_dbstr="DBQ="+server.mappath("Sql.mdb")+";DefaultDir=;DRIVER={MicrosoftAccessDriver(*.mdb)};"
SetConn=Server.CreateObject("ADODB.CONNECTION")
Conn.openN_dbstr
endSUB
SubDBCLose()
Conn.close
SetConn=Nothing
Endsub
%>
</p>帮助用户快速实现各种应用服务,ASP商有整合各方面资源的能力,可在短期内为用户提供所需的解决方案。例如,典型的ERP安装,如果要在客户端安装的话需要半年到二年的时间,但是美国的一些ASP商如USI和CORIO能在90—120天内提供ERP应用方案。 ASP的语言不仅仅只是命令格式差不多,而是包含在<%%>之内的命令完全就是VB语法。虽然ASP也是做为单独的一个技术来提出的,但他就是完全继承了VB所有的功能。 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。 没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。 我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标. 如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助: 下面简单介绍一下我学习ASP的方法,希望对想学习ASP的朋友有所帮助... 不能只是将它停留在纸上谈兵的程度上。 我们必须明确一个大方向,不要只是停留在因为学而去学,我们应有方向应有目标. 哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
页:
[1]