仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 709|回复: 9
打印 上一主题 下一主题

[学习教程] ASP网页设计改善的SQL防注进

[复制链接]
蒙在股里 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:12:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
只要你想学,就没什么优缺点,上面那位大哥已经把网上的评论说了,但我认为想学哪个都一样,不然它就不可能在当今时代数字艺术方面存活到今天防注进<%
ASP防注进之办理计划特别页面处置由于有些页经由过程流式传送(好比含有文件上传的表单)假如单一利用穷举Form工具的操纵就会堕落以是要把这些页面过滤出来,同时在页面中利用sql("检测的字串")才行渣滓猪zero@new57.comhttp://blog.csdn.net/cfaq
源码下载http://www.new57.com/softback/sql.rar


将本页用include办法放在头部以让一切页都能够挪用,好比include在conn.asp里假如有流式上传的页面请把该页加到表page中,以防form抵触

DimN_no,N_noarray,req_Qs,req_F,N_i,N_dbstr,Conn,N_rs,N_userIP,N_thispageN_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,1if(N_rs.eofANDN_rs.Bof)thenCallN_check_form()endifN_rs.Close()setN_rs=nothing
endsub


检测给定字串subN_sql(agsql)这里是不纪录数据库,假如要改请本人修正N_check"CUS",req_Qs,"OTHER"endsub
检测Request.FormsubN_check_form()IfRequest.Form""ThenForEachreq_FInRequest.FormN_checkreq_F,Request.Form(req_F),"POST"Nextendifendsub
检测Request.QueryStringsubN_check_Qs()IfRequest.QueryString""ThenForEachreq_QsInRequest.QueryStringN_checkreq_Qs,Request.QueryString(req_Qs),"GET"Nextendifendsub
检测subN_check(ag,agsql,sqltype)ForN_i=0ToUbound(N_noarray)IfInstr(LCase(agsql),N_noarray(N_i))0ThencallN_regsql(ag,agsql,sqltype)Response.Write"MO"endifNextendsub
纪录并中断输入ag称号agsql内容sqltype范例subN_regsql(ag,agsql,sqltype)if(sqltype"OTHER")thenConn.Execute("insertintoSqlIn(Sqlin_IP,SqlIn_Web,SqlIn_FS,SqlIn_CS,SqlIn_SJ)values("&N_userip&","&N_thispage&","&sqltype&","&ag&","&agsql&")")endifResponse.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.endendsub
SubDBopen()N_dbstr="DBQ="+server.mappath("Sql.mdb")+";DefaultDir=;DRIVER={MicrosoftAccessDriver(*.mdb)};"SetConn=Server.CreateObject("ADODB.CONNECTION")Conn.openN_dbstrendSUB
SubDBCLose()Conn.closeSetConn=NothingEndsub%>

</p>无法实现跨操作系统的应用。当然这也是微软的理由之一,只有这样才能发挥ASP最佳的能力。可是我却认为正是Windows限制了ASP,ASP的概念本就是为一个能让系统运行于一个大的多样化环境而设计的;
老尸 该用户已被删除
沙发
发表于 2015-1-18 22:50:00 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
海妖 该用户已被删除
板凳
发表于 2015-1-23 21:49:02 | 只看该作者
尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。
第二个灵魂 该用户已被删除
地板
发表于 2015-1-31 19:58:57 来自手机 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
柔情似水 该用户已被删除
5#
发表于 2015-2-2 11:37:03 | 只看该作者
他的语法和设计思路和VB完全相同,导致很多ASP的书都留一句“相关内容请参考VB的相关教材....”更糟糕的是,相当多的ASP教程混合了Javascript,VBscript等等脚本语言,搞的初学者。
飘灵儿 该用户已被删除
6#
发表于 2015-2-7 19:12:18 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
若天明 该用户已被删除
7#
发表于 2015-2-23 01:56:34 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-7 04:57:10 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
蒙在股里 该用户已被删除
9#
 楼主| 发表于 2015-3-14 11:12:56 | 只看该作者
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
再见西城 该用户已被删除
10#
发表于 2015-3-21 04:26:54 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 10:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表