调用Encrypt(1235)得到acehj("aech?")时,只有?为j时能得到正确结果1234,除此之外的任何字符都将返回"现验证错误"。通过这样的保护变化,客户访问的就是news.asp?id=acehj.无法看到实际id为1235,随机生成的id又无法通过验证过程,就无法通过软件模拟来制造多线程的合法访问,避免因为非法访问使得数据库资源耗尽而拒绝服务。另外,在这样的保护下,SQL lnjection漏洞也得到了很好的防御。这仅仅是个示范代码,这个函数还有许多可以改进的地方:1)可以增加函数变化的强度,降低函数被猜测出具体过程的概率。2)可以把函数运用到Cookie中,对于Cookie做相应的变化,增加防御手段的隐蔽性。3)可以把客户IP加入函数运算,不光节约增强了函数强度,还达到防止盗链的功能。一旦用户改变IP或伪造COOKIE及ID,马上就发现4)可以把时间加入函数运算,不光节约服务器的存储空间,而且服务器只要通过对客户发送的字符串进行解码就能判断出客户信息。 程序可以改进的地方还有好多每虽然能从多方面保护服务器,但也要注意使用方法,比如第四点提到的对空间的节约,就需要考虑空间和时间综合因素。2:在代码层提高程序运行效率,增加服务器运行能力,减少被拒绝服务的可能。程序代码非常关键,实现同样的功能,代码的好坏,效率差别极大,这里有两个添加数据的代码大家比较下:代码一以下是代码片段: sql="select * from users" rs.open sql,conn.1.3 rs.addnew rs("username")="TEST" rs("password"="123456" rs.updatw rs.close %>代码二 sql="insert into users (username,password) values (’TEST’,’!23456’)" rs.open sql,conn,1,3 %>明显的代码二的效率比一要高的多,特别是当数据库体积较大或者进行对次的重复操作时效率的提升是相当可观的,代码的好坏决定了程序的优劣,决定了服务器所能支持的客户数,进而决定了服务器的抗击DDOS的能力。3:限制代理用户的访问:对代理用户访问的限制可以有效的防止黑客利用CC之类的工具进行攻击,限制黑客对代理的使用,增加他暴露的可能,所以禁止代理访问能够降低被攻击的可能。这个代码能够识别出大部分的代理访问。这段代码可以按用户自己的要求修改后写在Conn.asp里面,就能起作用拉,当然,代理是个双刃剑,对代理的限制也一样,禁止代理访问会给一部分用户的正常访问带来不变,所以要考虑后使用。4:使用HTTPS协议,使用HTTPS协议可以说好处多多,可以多传输数据的安全性给予充分的保障,由于HTTPS协议的复杂性,能对HTTPS协议进行攻击也相对少的多,HTTPS协议如果使用的非标准端口,基本可以杜绝所有的代理攻击,还避免了多线程的下载,降低服务器压力,但是由于HTTPS协议的复杂性,服务器新跟能够相对HTTPS协议来说会低些,对客户电脑性能的要器乐也就有所提高。5:减少动态文件的使用,增加景泰文件使用,动态文件可以带来丰富的页面,实现很多功能,节省开发时间,但是方便的同时就是服务器资源消耗的提升,所以许多大论坛都把访问大的帖子做成静态的,还有许多文章系统也事用的静态页面[比如Wwww.Cnhacks.CoM]以增加服务器的抗攻击能力。6:合理设置防火墙,防火墙能够有效地检测出功能,并对攻击进行积极的防御,但是如果对防火抢的设置不合理,发有可能出现防火墙负担能力比服务器还差的情况,拒绝服务器攻击产生的根源变成防火墙7:有条件的服务器可以使用端口重定向功能,80端口只负责做页面转向,具体提供服务的端口由系统动态决定,通过80端口的转往。8:对于已经遭受攻击的服务器,可以在使用以上手段防御的同时,考虑增加服务器集群增加服务器的服务能力。这是从服务器角度来考虑,当然还有其他当面,有不足地方还请大家指正,欢迎大家访问 http://www.cnhacks.com 赏金猎手进行技术交流! " />
Submitted by 海东青 on 2009, February 25, 2:43 PM. 网络安全