【教学课件】第9章ASP程序调试与错误处理.ppt
第9章 ASP程序调试与错误处理,无论计划多么精密、经验多么丰富,脚本错误(bug)可能在最初就使ASP服务器端脚本无法正确运行。也就是说调试,即查找和纠正脚本错误,对开发一个成功的和强健的ASP 程序是非常重要的。,第9章 ASP程序调试与错误处理,9.1 ASP中的主要错误类型9.2 防止错误的方法和良好的编程习惯9.3 ASP程序错误处理方法9.4 常见的ASP漏洞及解决方法9.5 ASP安全建议,9.1 ASP中的主要错误类型,ASP中出现的主要错误类型有:1.脚本错误 调试服务器端脚本时,可能会碰到各种类型的错误。2.语法错误 语法错误是经常碰到的错误,它是由不正确的脚本语法导致的。3.运行时错误 运行时错误是脚本在执行过程中脚本指令试图执行不可能的动作而导致的。4.逻辑错误 逻辑错误通常可能是潜在和难以检测的。,9.2 防止错误的方法和良好的编程习惯,1.代码的格式化和缩进编排 许多VBScript编程员懒于格式化编排其书写的程序。尽管这并不阻碍程序运行,但这使得查找何处产生了错误变得困难。2.显式表明变量 VBScript支持Option Explicit语句。在一个脚本页面的开头插入Option Explicit语句时,可以避免使用没有用Dim命令(或用于动态数组的ReDim)定义的变量。3.变量转换为合适的数据类型 在VBScript中,有一系列类似这样的数据类型变换函数,如果不能完成变换,也就是说变量内容对新数据类型来说是无效的,便会出现一个运行期错误。4.变量命名和编码约定5.封装脚本语言以便代码重用 刚刚看到了如何注释子程序和函数以便易于重新使用。面向对象编程的原理是建立在程序代码重用的基础上的,并且SSI的#include和新的Server.Execute方法使调用存储在程序库中的函数更容易。6.注意潜在的错误情况 编程时不管如何仔细,比如在使用和对变量类型转换之前对变量值进行测试,但总还是有一些情况不能避免错误的出现。7.最后的测试,9.3 ASP程序错误处理方法,即使采用了防御性编程技术之后,错误仍能进入到网页,这可能是因为测试并不充分,或者是因为所依靠的一些其他资源或服务没有正确工作。为了防止页面出现问题,在程序中要能够进行定制错误处理。,9.3.1 错误处理,1ASP缺省错误处理器VBScript错误处理(1)使用on Error Resume Next 语句(2)使用On Error Goto 0(3)VBScript Err对象3.使用IIS错误页面,9.3.2 程序调试发现及处理错误,常规调试技术(1)显示各种集合内容(2)显示中间值(3)检查组件属性值2.Microsoft 脚本调试工具(1)启用调试(2)VBScript Stop 语句调试器 3.获得ASP的帮助和支持,下面将讨论一些更传统的有助于跟踪出现在网页中的错误的技术。,9.4 常见的ASP漏洞及解决方法,ASP是开发网站应用的快速工具,但是有些网站管理员只看到ASP的快速开发能力,却忽视了ASP安全问题。ASP从一开始就一直受到众多漏洞,后门的困扰,包括%81的噩梦,密码验证问题,IIS漏洞等等都一直使ASP网站开发人员心惊胆跳。本节试图从开放了ASP服务的操作系统漏洞和ASP程序本身漏洞,阐述ASP安全问题,并给出解决方法或者建议。,9.4.1 ASP的安全优点,建议大家在设置WEB站点时,将HTML文件同ASP文件分开放置在不同的目录下,然后将HTML子目录设置为“读”,将ASP子目录设置为“执行”,这不仅方便了对WEB的管理,而且最重要的提高了ASP程序的安全性,防止了程序内容被客户所访问。,9.4.2 ASP漏洞分析和解决方法,在ASP程序后加个特殊符号,能看到ASP源程序2.ACCESSmdb数据库有可能被下载的漏洞3.code.asp文件会泄漏ASP代码4.filesystemobject组件篡改下载fat分区上的任何文件的漏洞5.输入标准的HTML语句或者javascript语句会改变输出结果6.ASP程序密码验证漏洞7.IIS4或者IIS5中安装有INDEXSERVER服务会漏洞ASP源程序8.漏洞名称:IIS4.0受HTTP的攻击漏洞 9.漏洞名称:IIS5.0超长URL拒绝服务漏洞 10.请求不存在的扩展名为idq或ida 文件,会暴露服务器上得物理地址 11.绕过验证直接进入ASP页面12.IIS4.0/5.0特殊数据格式的URL请求远程DOS攻击 13.MS ODBC数据库连接溢出导致NT/9x拒绝服务攻击 14.ASP主页.inc文件泄露问题,9.5 ASP安全建议,1.安装NT最新的补丁 2.关闭没有用的服务和协议 3.设置好你的NT 4.磁盘文件格式使用比较安全的NTFS格式5.对目录设置不同的属性,如:Read、Excute、Script6.维护 Global.asa 的安全 7.不要把密码,物理路径直接写在程序中8.在程序中记录用户的详细信息 9.Cookie 安全性 10.使用身份验证机制保护被限制的 ASP 内容 11.保护元数据库 12.使用 SSL 维护应用程序的安全 13.客户资格认证 14.ASP的加密 15.SQL SERVER的安全性 16.使用最新的扫描器扫描ASP漏洞,本章小结,本章主要介绍了ASP程序调试与错误处理包括ASP中的主要错误类型、防止错误的方法和良好的编程习惯、ASP程序错误处理方法、常见的ASP漏洞及解决方法、ASP安全建议。ASP中出现的主要错误类型有:1.脚本错误 2.语法错误 3.运行时错误 4.逻辑错误 防止错误的方法和良好的编程习惯1.代码的格式化和缩进编排2.显式表明变量3.变量转换为合适的数据类型4.变量命名和编码约定5.封装脚本语言以便代码重用6.注意潜在的错误情况7.最后的测试ASP程序错误处理方法1ASP缺省错误处理器2.VBScript错误处理3.使用IIS错误页面常见的ASP漏洞及解决方法ASP安全建议,