|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;程序|防注进|防注进sql注进被那些菜鸟级其余所谓黑客妙手玩出了味道,,发明如今年夜部分黑客进侵都是基于sql注进完成的
,哎,,谁让这个进门简单呢,好了,,不说空话了,,如今我入手下手说假如编写通用的sql防注进程序
一样平常的http哀求不过乎get和post,以是只需我们在文件中过滤一切post大概get哀求中的参数信息中
不法字符便可,以是我们完成http哀求信息过滤就能够判别是是不是遭到sql注进打击。
iis传送给asp.dll的get哀求是是以字符串的情势,,当传送给Request.QueryString数据后,,
asp剖析器会剖析Request.QueryString的信息,,然后依据"&",分出各个数组内的数据
以是get的拦阻以下
起首我们界说哀求中不克不及包括以下字符
|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare
各个字符用"|"离隔,,然后我们判别的失掉的Request.QueryString
详细代码以下
dimsql_injdata
SQL_injdata="|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj=split(SQL_Injdata,"|")
IfRequest.QueryString""Then
ForEachSQL_GetInRequest.QueryString
ForSQL_Data=0ToUbound(SQL_inj)
ifinstr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0Then
Response.Write"<ScriptLanguage=****>alert(世界影戏同盟SQL通用防注进体系提醒↓nn请不要在参数中包括不法字符实验注进!);history.back(-1)</Script>"
Response.end
endif
next
Next
EndIf
如许我们就完成了get哀求的注进的拦阻,可是我们还要过滤post哀求,以是我们还得持续思索request.form,这个也是以数组情势存在的,,我们只必要再进一次轮回判别便可。代码以下
IfRequest.Form""Then
ForEachSql_PostInRequest.Form
ForSQL_Data=0ToUbound(SQL_inj)
ifinstr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0Then
Response.Write"<ScriptLanguage=****>alert(世界影戏同盟SQL通用防注进体系提醒↓nn请不要在参数中包括不法字符实验注进!nnHTTP://www.521movie.com);history.back(-1)</Script>"
Response.end
endif
next
next
endif
好了半途而废,,我们已完成了get和post哀求的信息拦阻,,你只必要在conn.asp之类的翻开数据库文件之前援用这个页面便可。宁神的持续开辟你的程序,,不必再思索是不是还会遭到sql注进打击。岂非不是么?
</p>减少客户内IT专业人才缺乏带来的影响。ASP的客户员工利用浏览器进入相关的应用软件,简单易用,无需专业技术支持。 |
|