从保护ASP文件代码、保护隐私数据等方面,以上分析了各种ASP的加密技术。基于分析,笔者提出以下几点建议:
1、众所周知,ASP是一种源代码完全公开的网站开发技术,但MS Enocde程序并不能很好地保密代码。像某些商用ASP系统一样,从保护自己的网站代码和知识产权的角度出发,将关键ASP代码封装成DLL文件是种比较好的方法,使得攻击者难以进行反编译。封装的DLL代码在一定程度上可以防止SQL注入攻击。
2、对于处理用户密码这种重要数据的网站程序,使用MD5函数对密码进行杂凑函数处理成数字摘要,这是一种最常用的方法。虽然理论证明MD5算法不是绝对的安全,并且存在可能的“碰撞”,但一个复杂组合的密码的HASH值还是很难破解的。在ASP的具体应用中,可以考虑在MD5.asp的源代码中进行仅仅程序员本人才知道的秘密改动,这样攻击者知道了密文也很难暴力破解。
3、除了进行异或处理这种简易的“类对称”加密算法以外,还可以考虑使用DES算法或3DES等等加密算法进行加密数据。除了保护代码,还可以对关键数据进行加密以后保存在数据库中,这样就可以对数据库进行加密了。密钥必须保存在一个相对比较安全的地方,这样才能保护好ASP代码或关键数据。
4、在ASP程序中暂时还无法使用基于客户端证书的非对称加密算法。要想基于客户端证书进行公钥加密或签名,需要在.NET环境下进行设计。
ASP还是现阶段互联网应用较广泛的网站制作技术之一。随着ASP技术的推出,给网站的设计者带来了开发的便利性及资源的共享性。从保护ASP的代码及数据安全这两个方面的分析,笔者认为现有的脚本语言还是有一定局限性,并不能把完整的加密签名等信息安全技术融入其中。该文的介绍及分析仅限对于现有的ASP技术进行讨论,更深入的安全方面的讨论需要借助.NET平台。
小知识之ASP概念:
ASP是Active Server Page的缩写,意为“动态服务器页面”。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具。