李如桃
(宁波职业技术学院,浙江 宁波 315800)
随着经全球化的发展,信息成为商家、政府、甚至个人之间相互竞争的重要因素,而INTERNET 提供了在这场竞争中获胜的有利工具。有需要在INTERNET 上发布信息、提供新型的网上管理和服务,从而使网站建设与网页设计的相关技术蓬勃发展起来。现在基本上网站的建设都采用了动态网页技术,主要有:CGI,PHP,ASP,JSP,ASP.net 等等。其中ASP 是比较流行的动态网页制作技术。
在提供网络服务时,信息的安全性至关重要。安全包括服务器及数据的安全、服务器与用户之间传递信息的安全、终端用户计算机及其他网络设备的安全。网站安全策略目的是抵抗来自网络环境的攻击方法,从而提高网站系统的安全级别。主要涉及Web 服务器软件、支撑服务器运行的操作系统的安全设置及管理、网站系统本身的代码及管理。本文对ASP 代码的安全设置作浅显的分析。
ASP(Active Server Pages)是 Microsoft 的一个强有力的基于服务器的技术,它起一种编程语言的作用,可利用它编写动态产生网页的HTML 程序代码。利用Microsoft? Active Server Pages 服务器端脚本编写环境,可以创建和运行动态、交互的Web 服务器应用程序。使用ASP 可以组合HTML 页、脚本命令和ActiveX 组件以创建交互的Web 页和基于Web的功能强大的应用程序。ASP 据有语言兼容性高、编写过程简化、对客户端要求低、安全性高、数据库访问便捷等优点。但若在脚本编写中有不良习惯或疏忽会给网站安全带来极大的隐患,现就几个常见的漏洞进行分析,给出规避方法。
网站中某些主要页面是要通过验证才能进去的。但如果被非法用户知晓了ASP 页面的路径和文件名,只要直接输入URL 地址便可以绕过验证,直接进入重要的ASP 页面。因此我们可以在重要的需要验证的ASP 页面开头处进行处理,比如:叛定session(),并且跟踪上一个页面的文件名,只有从上一个页面转进来的会话才能读取这个页面。可参考如下代码
一般我们都是将用户名和密码放在数据库中,在验证时采用以下的SQL 语句
一旦数据库文件泄露,安全保护就形同虚设,可以使用MD5.asp 文件对用户名和密码进行加密,MD5 是一种加密算法,它可以对任何文件产生一个唯一的不可逆的字符串变换MD5 信息摘要。这样,即使密码数据库泄露,得到的也是一段不可还原的字符,无法获取真正的密码。ASP 中使用MD5 加密只需在页首引入md5.asp
使用command 插入记录,插入前对密码加密,语名为
将DSN 写在ASP 文件中,使程序更加灵活、方便,但可能导致数据源物理路径的泄露,存在安全隐患。建议在ODBC 中设立数据源,程序中使用数据名来打开数据库,不涉及具体的物理路径,即使文件的源代码泄露,所能看到的也只是一个数据源的名称,当然,这样是以牺牲程序的灵活性为代价的。
网页上如留言板等允许用户输入字符的部件,如果允许用户应用html 标记语言,将使程序不可控,如用户在某一留言框中输入
;
如果你的ASP 程序中没有屏蔽html 语句,那么就会随用户意愿改变"您好!"的字体大小。假如攻击者输入的是一段Javascript的死循环代码,就有可能使其他用户的浏览器因死循环而死机。简单的对应办法屏蔽掉所有的HTML、Javascript 语句,也可以写一段程序判定客户端的输入。
利用ASP 编写的网页在制作过程中,处于网上调试阶段,这时攻击者通过某些搜索引擎机查找到该网页,会得到有关文件(.inc)的定位,并能在浏览器中察看这些文件完整的源代码,从而导致某些敏感信息的泄露。解决这一问题的方法是,在为.inc 文件的文件命名时,不要采用系统默认的或者有特殊含义容易被用户猜测到的文件名,尽量使用无规则的英文字母。有条件的话可以对.inc 文件进行加密。最好使用.asp 文件代替.inc 文件使用户无法从浏览器直接观看文件的源代码。
[1]《网络程序设计:ASP》,尚俊杰,北京交通大学出版社,2004.11.
[2]《黑客攻防实例入门》,王杰、高山、石云,科学出版社,2006.4.
[3]《高性能网站建设指南》,(美)桑德斯|译者:刘彦博,电子工业出版,2002.6.