仓酷云

标题: ASP网页设计代码公布!两个小函数让你的ASP程序对S... [打印本页]

作者: 金色的骷髅    时间: 2015-1-16 23:42
标题: ASP网页设计代码公布!两个小函数让你的ASP程序对S...
ActiveServerPage技术为应用开发商提供了基于脚本的直观、快速、高效的应用开发手段,极大地提高了开发的效果。在讨论ASP的安全性问题之前,让我们来看看ASP是怎么工作的。sql|程序|函数|函数Rem##长整数转换
FunctiontoNum(s,default)
IfIsNumeric(s)ands""then
toNum=CLng(s)
Else
toNum=default
EndIf
EndFunction

Rem##SQL语句转换
FunctiontoSql(str)
IfIsNull(str)Thenstr=""
toSql=replace(str,"","")
EndFunction

示例:
Dimsql
DimstrWhere,strName,intAge
strName=toSql(request("user"))
intAge=toNum(request("age"),20)
sql="SELECT*FROM[USER]"&_
"WHERE[AGE]>"&strName&_
"AND[USERNAME]="&intAge&""

一样平常情形下,经由过程下面两个函数的过虑,能够根绝网上的SQL注进打击!假如你以为有必要,能够加上对chr(0)的交换,将toSql函数改成以下:
FunctiontoSql(str)
IfIsNull(str)Thenstr=""
str=replace(str,chr(0),"")
toSql=replace(str,"","")
EndFunction

另注:

***********************************************************************
检测内部提交的函数
FunctionCheckUrlRefer()
DimstrLocalUrl,intUrlLen,strUrlRefer
strLocalUrl="http://127.0.0.1"
intUrlLen=Len(strLocalUrl)
strUrlRefer=LCase(request.ServerVariables("HTTP_REFERER")&"")
检测前一个页面是不是来自strLocalUrl
IfLeft(strUrlRefer,intUrlLen)=strLocalUrlThen
CheckUrlRefer=True
Else
CheckUrlRefer=False
EndIf
EndFunction
***********************************************************************
该函数能够匡助你抵御内部的SQL注进测试,只必要在页面的头部挪用便可.

经由过程复杂的两个小函数,让你的ASP程序更平安!

接待妙手斧正(请将绕过这两个函数的办法写出来)!

相干会商页面:
http://community.csdn.net/Expert/TopicView.asp?id=3585010
http://community.csdn.net/Expert/TopicView.asp?id=3582230

http://community.csdn.net/Expert/topic/3589/3589480.xml?temp=.4866449
/////////////////////////////////////////////////////////////////////////////////////////////////////////////

dimqs,errc,iii
qs=request.servervariables("query_string")
dimnothis(18)
nothis(0)="netuser"
nothis(1)="xp_cmdshell"
nothis(2)="/add"
nothis(3)="exec%20master.dbo.xp_cmdshell"
nothis(4)="netlocalgroupadministrators"
nothis(5)="select"
nothis(6)="count"
nothis(7)="asc"
nothis(8)="char"
nothis(9)="mid"
nothis(10)=""
nothis(11)=":"
nothis(12)=""""
nothis(13)="insert"
nothis(14)="delete"
nothis(15)="drop"
nothis(16)="truncate"
nothis(17)="from"
nothis(18)="%"
errc=false
foriii=0toubound(nothis)
ifinstr(qs,nothis(iii))0then
errc=true
endif
next
iferrcthen
Response.Write("对不起,不法URL地点哀求!")
response.end
endif

***************************************************************

固然这办法做得太“尽”了,可是我也是没有举措啊。这个办法是在网上看到的,运转于一个网站上,如今统统优秀。为了平安我只能如许。我想只需有关SQL的敏感单词都举行过滤失落应当没有甚么吧,固然像楼主的做到那一步是基础上能够了,能够修补一下用用。记得我最后用的是《SQL注进天书》下面供应的提防办法,厥后才改用这个。
将我之前用的代码也帖出来供参考,人人有乐趣能够往百度或GOOGLE中搜刮一下《SQL注进天书》懂得

利用这个函数,对客户端提交来的数据举行考证。。。

<%
FunctionSafeRequest(ParaName,ParaType)
---传进参数---
ParaName:参数称号-字符型
ParaType:参数范例-数字型(1暗示以上参数是数字,0暗示以上参数为字符)

DimParaValue
ParaValue=Request(ParaName)
IfParaType=1then
IfnotisNumeric(ParaValue)then
Response.write"参数"&ParaName&"必需为数字型!"
Response.end
Endif
Else
ParaValue=replace(ParaValue,"","")
Endif
SafeRequest=ParaValue
Endfunction

%>




源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码
作者: 金色的骷髅    时间: 2015-1-20 11:23
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
作者: 只想知道    时间: 2015-1-23 18:50
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
作者: 再见西城    时间: 2015-1-27 11:45
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
作者: 飘灵儿    时间: 2015-2-1 10:08
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
作者: 若天明    时间: 2015-2-7 02:55
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
作者: 若相依    时间: 2015-2-19 22:34
如何学好ASP,以前也有人问过,把回答给你转过来看看能否对你有帮助:
作者: 小妖女    时间: 2015-3-6 15:45
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
作者: 海妖    时间: 2015-3-13 03:57
哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?
作者: 分手快乐    时间: 2015-3-20 11:35
ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象,这就明显产生以下几个问题:




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2