ASP精华文摘-002(转)

精华|文摘

转贴-给ASP程序多一点点安全感 (2000.03.28)

给ASP程序多一点点安全感

# 使用 On Error Resume Next
这一行语句等于告诉服务器处理程序:"如果我出错了,呵
呵不要管我,继续……”。这样做可以使你捕捉到很多可以
捕捉和处理的错误,比那些一出错就把家底拿给人家看的代
码好一些。调试的时候最好不要打开,一面无法发现哪里出
错了。

# 服务器IIS设置成出错后显示"处理 URL 时服务器上出错。
请和系统管理员联络。”(在应用程序配置中设置)
可以避免出错后透露细节给访问者,你的秘密就不用担心从
出错信息中透露出去了。

# 检查传递的参数合法性
这一点十分重要,根据我的测试,国内很多站点上的 ASP
程序如果改变了它的参数的值,一般都会出错。检查合法性
就可以明显的降低出错概率。具体的方法这里不再叙述。

# 尽量少用 GET 方式传递参数
从最基本的一点上讲,这种方式要比 POST 方式多传输一些
字节的 URL 给服务器,所占用的系统资源也会相应增加。
从安全性的角度来看也是很有好处的,可以减少命令行式的
攻击。

# 少用中文文件名
可能你觉得用中文文件名比较爽,可是从专业的角度来看,
这样做存在着很多弊端。手工敲地址时变得繁琐起来;调试
中需要输入文件名的地方还得打开输入法或者拷贝粘贴文件
名;本身就不够专业啦 ;-)

=======================================================================================================================================
转贴-解决主页中asp中文乱码(2000.03.27)

解决主页中asp中文乱码

: 在做内有VBscript的asp homepage时,一个form提交方法为GET,
: 当form的表单传给asp处理时,入...asp?name="张三"
: 可张三的中文已经乱码,请问如何在asp中用vbscript将乱码恢复成
: 正确的中文.
: .......

对文字进行如下cut()过程即可
<script language=vbscript runat=server>
Function cut(str)
length = Len(str)
count = 1
Do While count <= length
If strComp(Mid(str,count,1),"Z",1) > 0 Then
length = length -1
End If
count = count + 1
Loop
cut = Left(str,Length)
if Session("Version")<>3 then '若为高版本asp则不需处理
cut = str
end if
End Function
</script>

=======================================================================================================================================
转贴-尽可能的使用本地(局部)变量 (2000.03.24)

尽可能的使用本地(局部)变量

局部变量是在子程序和函数中定义的(也就是常说局部范围的变量),这些变量
被编译成数字指向并放入一张表中。这些局部变量的指向可以通过一次编译完成。
而全局变量则是在运行时被执行的。这就意味着局部变量的存取要比全局变量快
好几倍。而且,多维全局变量是其中最慢的,当第一次使用一个多维全局变量时,
在新的对象产生之前,就要在整个对象模型中搜索一遍同名的对象。

以下是一个非常常见的例子:
Foo.bar.blah.baz = Foo.bar.blah.qaz(1)
If Foo.bar.blah.zaq = Foo.bar.blah.abc then
运行时产生如下结果:
1)变量Foo被定义为一个全局变量
2)变量bar被定义为Foo的一个成员
3)变量blah被定义为Foo.bar的一个成员
4)变量qaz被定义为Foo.bar.blah的一个成员
5)调用 Foo.bar.blah.quaz(1)
6)重复1至3。系统并不知道如果调用qaz改变了对象模型1-3步必须重新执行
7)定义baz为 Foo.bar.blah的成员,输出值
8)重复1-3,执行zaq
9)重复1-3,执行abc

正如你看到的,效率极其低下,最快的方法就是把这些代码写在vbscript中:
Set myobj = Foo.bar.blah ' do the resolution of blah ONCE
Myobj.baz = myobj.qaz(1)
If Myobj.zaq = Myobj.abc then

=======================================================================================================================================
转贴-正确使用Global.asa (2000.03.23)

正确使用global.asa是ASP开发者的一个共同问题。最主要的是要知道什么时候该用
Virtual Application,什么时候该用Virtual directory,并且知道他们的不同。

Virtual Directories(虚拟目录)

简而言之,virtual directories是虚拟出来的,不一定跟web root在同一个的目
录上,可以是其他的。但是你可以像使用web root上的其他目录一样使用它。当
运行global.asa以后,ASP就把所有的虚拟目录看成是应用程序根目录上的子目录。

值得注意,如果你的目录已经是website root上的一个物理目录,那就没有必要
再去为那个目录做虚拟目录了。当然,你有也可以这样做。如果你的目录的路径
实在是太长,长到你无法忍受,想它短一点。你可以用建虚拟目录的方法。使它
短些,容易记住。例如:原来的目录http://mysite.com/directory1/directory
2/file.asp,你可以为它建一个虚拟的目录,http://mysite.com/directory2/fi
le.asp。这样就方便多了了。

Virtual Applications(虚拟应用程序)

Virtual Applications 是一个独立于website的web applications,而它跟Virtual
Directories一样,不一定是web root上的一个目录。可以是从其他的目录虚
拟出来的。ASP不允许应用程序共享他们的application和session变量,换句话说,
就是应用程序A不能访问应用程序B(包括web root,因为web root也是看作一个
应用程序的根。)的application和session变量,他们是私有的。反之亦然。当你
确信这个应用程序不需要与整个website、website上其他子目录上的ASP脚本共享
application和session变量,或者你想在同样的内存空间里隔离一个进程来运行
应用程序时。你使用Virtual Applications是正确的。

要注意的一点是:在IIS 4.0里面的"新虚拟目录向导” 所建立的virtual directory
(虚拟目录)缺省就是一个virtual application(虚拟应用程序)。要把它变回
virtual directory的话,你可以在目录的"属性”里,选择"目录”标签,单击"卸载”。

小心使用多个 Global.asa

在一个website里面使用多个Global.asa,我们必须要注意,因为那是很容易导致
变量超出范围而丢失的。通常我们必须限制在整个website上的Global.asa的树木,
在每一个应用程序的的根目录里面放一个。这是保持session和application变
量比较好的方法,不至于它们会丢失。通过在各个目录上放置global.asa文件,
我测试的asp文件,可以帮助我们理解它们的关系。

例子,下面是一个website的设置。在这个website下面有两个目录。一个Virtual
Application(虚拟应用程序)叫admin,一个Virtual Directory(虚拟目录)叫
images。在每一个目录下有2个文件:global.asa和default.asp。每一个目录里的
default.asp都是一样的,global.asa则根据不同的目录有所改变。

这个是default.asp的内容:
<%
Response.Write "Session Application_Directory = <b>" &
Session("applicat

时间: 2024-11-05 10:53:51

ASP精华文摘-002(转)的相关文章

ASP精华文摘-002

精华|文摘 转贴-给ASP程序多一点点安全感 (2000.03.28) 给ASP程序多一点点安全感 # 使用 On Error Resume Next 这一行语句等于告诉服务器处理程序:"如果我出错了,呵 呵不要管我,继续--".这样做可以使你捕捉到很多可以 捕捉和处理的错误,比那些一出错就把家底拿给人家看的代 码好一些.调试的时候最好不要打开,一面无法发现哪里出 错了. # 服务器IIS设置成出错后显示"处理 URL 时服务器上出错. 请和系统管理员联络."(在应

ASP精华文摘-002 (转)

精华|文摘 来源:www.yesky.com转贴-给ASP程序多一点点安全感 (2000.03.28) 给ASP程序多一点点安全感 # 使用 On Error Resume Next 这一行语句等于告诉服务器处理程序:"如果我出错了,呵 呵不要管我,继续--".这样做可以使你捕捉到很多可以 捕捉和处理的错误,比那些一出错就把家底拿给人家看的代 码好一些.调试的时候最好不要打开,一面无法发现哪里出 错了. # 服务器IIS设置成出错后显示"处理 URL 时服务器上出错. 请和系

ASP精华文摘-001

精华|文摘 转贴-RESPONSE对象(2000.03.22) RESPONSE对象 RESPONSE对象非常有用而且功能丰富.这里我们将要给大家介绍的是其最基本的功能.当然它的所有功能比我们在这里所要介绍的多得多,但我们认为这里所要介绍的20%的内容是你会在80%的时间中都会用到的.我们认为RESPONSE对象主要的功能如下: # RESPONSE.WRITE# RESPONSE.WRITE也可以简写为<%=%>这样的格式简单的嵌入到HTML语言中# RESPONSE.REDIRECT方法可

ASP精华文摘-003

精华|文摘 来源:www.yesky.com 转贴-如何在不刷新页面的情况下调用远程ASP (2000.03.30) RS技术的一个具体例子 在前面的帖子中,我介绍了RS的基本工作原理,显然如果将RS技术运用在一 个网站的设计中将会有很多非凡的作用(尤其是它的那个最大的优点,可以在不刷 新页面的情况下调用服务端的代码).正是因为这个特点,你就可以象在编写一个 传统的C/S模式的程序一样,对数据库的数据进行处理了(我想大家一定很想知道 具体应该如何来实现了,下面将给出一个具体的例子,调试这个破程序

ASP精华文摘-001 (转)

精华|文摘 来源:www.yesky.com转贴-RESPONSE对象(2000.03.22) RESPONSE对象 RESPONSE对象非常有用而且功能丰富.这里我们将要给大家介绍的是其最基本的功能.当然它的所有功能比我们在这里所要介绍的多得多,但我们认为这里所要介绍的20%的内容是你会在80%的时间中都会用到的.我们认为RESPONSE对象主要的功能如下: # RESPONSE.WRITE# RESPONSE.WRITE也可以简写为<%=%>这样的格式简单的嵌入到HTML语言中# RESP

ASP精华文摘-001(转)

精华|文摘 转贴-RESPONSE对象(2000.03.22) RESPONSE对象 RESPONSE对象非常有用而且功能丰富.这里我们将要给大家介绍的是其最基本的功能.当然它的所有功能比我们在这里所要介绍的多得多,但我们认为这里所要介绍的20%的内容是你会在80%的时间中都会用到的.我们认为RESPONSE对象主要的功能如下: # RESPONSE.WRITE# RESPONSE.WRITE也可以简写为<%=%>这样的格式简单的嵌入到HTML语言中# RESPONSE.REDIRECT方法可

[ASP]精华代码

复制代码 代码如下: <%   ' -- Loader.asp --   ' -- version 1.5.2   ' -- last updated 12/5/2002   '   ' Faisal Khan   ' faisal@stardeveloper.com   ' www.stardeveloper.com   ' Class for handling binary uploads Class Loader     Private dict Private Sub Class_Ini

ASP 精华源码收集(五年总结)第1/20页_应用技巧

<% '#######以下是一个类文件,下面的注解是调用类的方法################################################ '# 注意:如果系统不支持建立Scripting.FileSystemObject对象,那么数据库压缩功能将无法使用 '# Access 数据库类 '# CreateDbFile 建立一个Access 数据库文件 '# CompactDatabase 压缩一个Access 数据库文件 '# 建立对象方法: '# Set a = New

ASP 精华源码收集(五年总结)第1/20页

<% '#######以下是一个类文件,下面的注解是调用类的方法################################################ '# 注意:如果系统不支持建立Scripting.FileSystemObject对象,那么数据库压缩功能将无法使用 '# Access 数据库类 '# CreateDbFile 建立一个Access 数据库文件 '# CompactDatabase 压缩一个Access 数据库文件 '# 建立对象方法: '# Set a = New