老師說:抽烟身軆好.赌博練頭脑.摇頭没烦恼`打架練手脚.抢劫练長跑.!!
【教程】第五章 asp优化
上一篇 /
下一篇 2006-06-30 22:33:09
查看( 405 ) /
评论( 9 )
论坛模式
推荐
收藏
分享给好友
推荐到圈子
管理
TAG:
-
shaddow
发布于2006-06-30 22:33:09
-
【教程】第五章 asp优化
本教程由网易学院编辑整理开发:
-
shaddow
发布于2006-06-30 22:36:16
-
5.1 ASP编码优化技巧8则
ASP(Active Server Page)是Microsoft公司推出的基于PWS(Personal Web Server)&IIS(Internet Information Server)平台的、基于ISAPI(InternetServiceAPI)原理的动态网页开发技术,目前日趋成熟完善。在这里仅就代码优化进行一些简单讨论。 ●★黑基论坛★● - 全球最大中文黑客社区c#OD8c_ Q^
G}UQ'yY!^)X黑基论坛,培训,动画,教程,攻击,入侵,挂站,破解,漏洞,扫描,共享,木马,病毒,跳板,监听,嗅探,炸弹,伪装,拒绝服务,防火墙,杀毒软件,入侵检测,身份认证,缓冲溢出,蠕虫,安全工具,攻击程序,加密,解密,外挂,私服,ddos,webshell,sql注入,灰鸽子,冰河,熊猫烧香1、声明VBScript变量
9Cw
P']c/N"bQ'Rgn+q5J●★黑基论坛★● - 全球最大中文黑客社区 在ASP中,对vbscript提供了强劲的支持,能够无缝集成vbscript的函数、方法,这样给扩展ASP的现有功能提供了很大便利。由于ASP中已经模糊了变量类型的概念,所以,在进行ASP与vbscript交互的过程中,很多程序员也惯于不声明vbscript的变量,这样加重了服务器的解析负担,进而影响服务器的响应请求速度。 4v|G1J.B+Cyy six
鉴于此,我们可以象在VB中强制用户进行变量声明一样在vbscript中强制用户进行变量声明。实现方法是在ASP程序行首放置<% option explicit%>。 ★黑基空间★9P
Q1U+Vt nyiw F
vIAaX6b!a.s]`
2、对URL地址进行编码 黑基论坛,培训,动画,教程,攻击,入侵,挂站,破解,漏洞,扫描,共享,木马,病毒,跳板,监听,嗅探,炸弹,伪装,拒绝服务,防火墙,杀毒软件,入侵检测,身份认证,缓冲溢出,蠕虫,安全工具,攻击程序,加密,解密,外挂,私服,ddos,webshell,sql注入,灰鸽子,冰河,熊猫烧香^ R!yJ1|'iw8P`
在我们使用asp动态生成一个带参数URL地址并进行跳转时,在IE中解析很正常,但在NetScrape浏览时却有错误如下:
&ezVr
b!^n,{★黑基空间★
\{)v^3J%n+tMspace.hackbase.comHTTP Error 400
hn#Lw1H.N$h0B4`x400 Bad Request
YJ-RH3yX8P:]+RDue to malformed syntax, the request could not be understood by the server.
?r?6]nu o,PThe client should not repeat the request without modifications.
8N6rwT:?&P5jX"{[$a●★黑基论坛★● - 全球最大中文黑客社区
E
Qs7ct2?8ejspace.hackbase.com解决方法是对生成的URL参数使用ASP内置server对象的URLencode方法进行URL编码,例子如下:
.U.]1zu*ej7d5hspace.hackbase.com●★黑基论坛★● - 全球最大中文黑客社区o$G s4m!w
<%
8Z3B'OY~.i-b2L*p
a7ospace.hackbase.comURL="xur.asp" space.hackbase.comTN\,Wq/kU[+Hq
var1="username=" & server.URLencode("xur")
6E1vA?]var2="&company=" & server.URLencode("xurstudio") ★黑基空间★+q*Z:FDj|Z
A(c6^
var3="&phone=" & server.URLencode("021-53854336-186")
F2~RpvX*Cspace.hackbase.comresponse.redirect URL & "?" & var1 & var2 & var3 7~:V+Nl R
%>
7IA/Ud.fH@Nspace.hackbase.com
*p(G'W CPcm★黑基空间★*eU)Y-xzSd
3、清空对象
g1l(W9u"pbY r?●★黑基论坛★● - 全球最大中文黑客社区 当使用完对象后,首先使用Close方法来释放对象所占用的系统资源;然后设置对象值为“nothing”释放对象占用内存。当年,我就是在一张页面上创建了百余个没有清空对象的记录集而崩溃了我的IIS 。下面的代码使用数据库内容建立一个下拉列表。代码示例如下: space.hackbase.comOF*A:@7ig6__
●★黑基论坛★● - 全球最大中文黑客社区I9i&b1o~h:y9V
<% myDSN="DSN=xur;uid=xur;pwd=xur"
r7uT2]A*TLspace.hackbase.commySQL="select * from authors where AU_ID<100" v5c.oQS
A0t"[v
set conntemp=server.createobject("adodb.connection")
eo\{9@H&RO;|
k
conntemp.open myDSN ●★黑基论坛★● - 全球最大中文黑客社区2M:K
Dp(Sp-o
set rstemp=conntemp.execute(mySQL)
T.v{F(n*L*}if rstemp.eof then
/W!S1\(~q u●★黑基论坛★● - 全球最大中文黑客社区response.write "数据库为空" space.hackbase.com
b9SD9A;PO9l
WX'G[
response.write mySQL
]UO|(CWDr3sRconntemp.close 黑基论坛,培训,动画,教程,攻击,入侵,挂站,破解,漏洞,扫描,共享,木马,病毒,跳板,监听,嗅探,炸弹,伪装,拒绝服务,防火墙,杀毒软件,入侵检测,身份认证,缓冲溢出,蠕虫,安全工具,攻击程序,加密,解密,外挂,私服,ddos,webshell,sql注入,灰鸽子,冰河,熊猫烧香E4`2E3^btLcK {2n
set conntemp=nothing
Lza~8R7DL0v黑基论坛,培训,动画,教程,攻击,入侵,挂站,破解,漏洞,扫描,共享,木马,病毒,跳板,监听,嗅探,炸弹,伪装,拒绝服务,防火墙,杀毒软件,入侵检测,身份认证,缓冲溢出,蠕虫,安全工具,攻击程序,加密,解密,外挂,私服,ddos,webshell,sql注入,灰鸽子,冰河,熊猫烧香response.end
a~V A+q1c? A"|Gspace.hackbase.com end if%> i,D*U0ug&x*R,H
<%do until rstemp.eof %> [{dI.pG@j7l
<%
3_ FjK4_8`黑基论坛,培训,动画,教程,攻击,入侵,挂站,破解,漏洞,扫描,共享,木马,病毒,跳板,监听,嗅探,炸弹,伪装,拒绝服务,防火墙,杀毒软件,入侵检测,身份认证,缓冲溢出,蠕虫,安全工具,攻击程序,加密,解密,外挂,私服,ddos,webshell,sql注入,灰鸽子,冰河,熊猫烧香rstemp.movenext
H7Y"V NSS●★黑基论坛★● - 全球最大中文黑客社区loop
0qIPjcNrstemp.close
3O|$aQ/n'oset rstemp=nothing
P ?%b8T%VdYJ★黑基空间★conntemp.close
TXO0z!|●★黑基论坛★● - 全球最大中文黑客社区set conntemp=nothing
A+{9E fD9s-Sspace.hackbase.com%>
F,C)[^&K{#E_8y
p~0B@t#Ce_★黑基空间★
Cc3Y/s4]S\4、使用字符串建立SQL查询
;X$vs-@-d8^R 使用字符串来建立查询并不能加快服务器的解析速度,相反,它还会增加服务器的解析时间。但在这里仍然推荐使用字符串代替简单的查询语句来进行查询。这样做的好处是,可以迅速发现程序问题所在,从而便利高效地生成程序。示例如下:
5SI,blM+dspace.hackbase.com
&M#v [ D1[
OMk★黑基空间★<%mySQL= ""select * " 黑基论坛,培训,动画,教程,攻击,入侵,挂站,破解,漏洞,扫描,共享,木马,病毒,跳板,监听,嗅探,炸弹,伪装,拒绝服务,防火墙,杀毒软件,入侵检测,身份认证,缓冲溢出,蠕虫,安全工具,攻击程序,加密,解密,外挂,私服,ddos,webshell,sql注入,灰鸽子,冰河,熊猫烧香0Q
g},B.Tk-V;`
mySQL= mySQL & "from publishers" 黑基论坛,培训,动画,教程,攻击,入侵,挂站,破解,漏洞,扫描,共享,木马,病毒,跳板,监听,嗅探,炸弹,伪装,拒绝服务,防火墙,杀毒软件,入侵检测,身份认证,缓冲溢出,蠕虫,安全工具,攻击程序,加密,解密,外挂,私服,ddos,webshell,sql注入,灰鸽子,冰河,熊猫烧香%v_M#eJ
mySQL= mySQL & "where state='NY'" ★黑基空间★4gof;x6~
response.write mySQL 4v)u@,`&A!]Q
set rstemp=conntemp.execute(mySQL) ●★黑基论坛★● - 全球最大中文黑客社区"waK.i%\
rstemp.close
4JtAT/^h+~SZset rstemp=nothing V*z8\8p{
%>
(E%x'[|/QS#]c3Hpb!c._
|f^|)XMUe5、使用case进行条件选择
)sF4Qv7z"q u%~QD,_space.hackbase.com 在进行条件选择的时候,尽量使用case语句,避免使用if语句。使用case语句,可以使程序流程化,执行起来也比if语句来的快。示例如下:
|B)d8Yh't#y黑基论坛,培训,动画,教程,攻击,入侵,挂站,破解,漏洞,扫描,共享,木马,病毒,跳板,监听,嗅探,炸弹,伪装,拒绝服务,防火墙,杀毒软件,入侵检测,身份认证,缓冲溢出,蠕虫,安全工具,攻击程序,加密,解密,外挂,私服,ddos,webshell,sql注入,灰鸽子,冰河,熊猫烧香
+UD9A/`'N:nR^space.hackbase.com<%
O Ba-H`:E黑基论坛,培训,动画,教程,攻击,入侵,挂站,破解,漏洞,扫描,共享,木马,病毒,跳板,监听,嗅探,炸弹,伪装,拒绝服务,防火墙,杀毒软件,入侵检测,身份认证,缓冲溢出,蠕虫,安全工具,攻击程序,加密,解密,外挂,私服,ddos,webshell,sql注入,灰鸽子,冰河,熊猫烧香 FOR i = 1 TO 1000 黑基论坛,培训,动画,教程,攻击,入侵,挂站,破解,漏洞,扫描,共享,木马,病毒,跳板,监听,嗅探,炸弹,伪装,拒绝服务,防火墙,杀毒软件,入侵检测,身份认证,缓冲溢出,蠕虫,安全工具,攻击程序,加密,解密,外挂,私服,ddos,webshell,sql注入,灰鸽子,冰河,熊猫烧香g/Qu9EDqAK
n = i 黑基论坛,培训,动画,教程,攻击,入侵,挂站,破解,漏洞,扫描,共享,木马,病毒,跳板,监听,嗅探,炸弹,伪装,拒绝服务,防火墙,杀毒软件,入侵检测,身份认证,缓冲溢出,蠕虫,安全工具,攻击程序,加密,解密,外挂,私服,ddos,webshell,sql注入,灰鸽子,冰河,熊猫烧香/r"?acT}sx,|/gW_
Response.Write AddSuffix(n) & "<br>" ]M%nn-q,E.X
NEXT
1oCE%bz-d+wen'`●★黑基论坛★● - 全球最大中文黑客社区 %>
B$i!D+K1M
MY(j★黑基空间★ <%
_wkb)I●★黑基论坛★● - 全球最大中文黑客社区 Function AddSuffix(num)
V/v(F;S"au5h{,Dnumpart = RIGHT(num,1) rQ\K4YI4X7s
SELECT CASE numpart :Y+Yg'{.t}+a
CASE "1" space.hackbase.comY4Y6~s,I;`
IF InStr(num,"11") THEN
,q6_YbWf-V]num = num & "th"
&LG%D,H/~#J#e y Q黑基论坛,培训,动画,教程,攻击,入侵,挂站,破解,漏洞,扫描,共享,木马,病毒,跳板,监听,嗅探,炸弹,伪装,拒绝服务,防火墙,杀毒软件,入侵检测,身份认证,缓冲溢出,蠕虫,安全工具,攻击程序,加密,解密,外挂,私服,ddos,webshell,sql注入,灰鸽子,冰河,熊猫烧香ELSE ★黑基空间★7v Cd"D}L`
num = num & "st"