ASP网页设计静态网页老手进门:提防SQL注进打击的新...
ASP脚本是采用明文(plaintext)方式来编写的。sql|静态|打击|网页 近段工夫因为修正一个ASP程序(有SQL注进毛病),在网上找了良多相干的一些提防举措,都不近人意,以是我将如今网上的一些办法综合改进了一下,写出这个ASP函数,供人人参考。FunctionSafeRequest(ParaName)
DimParaValue
ParaValue=Request(ParaName)
ifIsNumeric(ParaValue)=Truethen
SafeRequest=ParaValue
exitFunction
elseIfInstr(LCase(ParaValue),"select")>0orInstr(LCase(ParaValue),"insert")>0orInstr(LCase(ParaValue),"deletefrom")>0orInstr(LCase(ParaValue),"count(")>0orInstr(LCase(ParaValue),"droptable")>0orInstr(LCase(ParaValue),"update")>0orInstr(LCase(ParaValue),"truncate")>0orInstr(LCase(ParaValue),"asc(")>0orInstr(LCase(ParaValue),"mid(")>0orInstr(LCase(ParaValue),"char(")>0orInstr(LCase(ParaValue),"xp_cmdshell")>0orInstr(LCase(ParaValue),"execmaster")>0orInstr(LCase(ParaValue),"netlocalgroupadministrators")>0orInstr(LCase(ParaValue),"and")>0orInstr(LCase(ParaValue),"netuser")>0orInstr(LCase(ParaValue),"or")>0then
Response.Write"<scriptlanguage=javascript>"
Response.Write"alert(不法的哀求!);"发明SQL注进打击提醒信息
Response.Write"location.href=http://blog.knowsky.com/;"发明SQL注进打击转跳网址
Response.Write"<script>"
Response.end
else
SafeRequest=ParaValue
EndIf
Endfunction
利用SafeRequest函数交换你的Request
ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的工具可是什么都要收钱的啊! 接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。 运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。 学习ASP其实应该上升到如何学习程序设计这种境界,其实学习程序设计又是接受一种编程思想。比如ASP如何学习,你也许在以前的学习中碰到过。以下我仔细给你说几点: 尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。 用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。 我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。 接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。 没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
页:
[1]