真没想到一个小小的输入参数的漏洞,居然可造成整个网站的不安全,甚至是破坏性的。
其实要解决这个问题也真是非常的简单,只要对输入的参数进行一下判断就可以了。如果是字符型参数,用checkstr(自写)将其中的'改换为'';如果是数值型,用isnumeric(系统自带)来判断,返回True即为判断正确,不过有时会出错,所以我用isinteger(自写)来判断。只要对每个有输入参数的页面都进行一下判断,那么对于SQL注入这种黑客侵入方法来说,你的网站就是安全的。
51检查出来的那些页面,我分析了一下。1,为了节省时间,直接拿网上现成的程序来改,而此程序有些漏洞,所以...;2.自己写的页面,以前也有这些认识,但认识不深。有些页面加了判断,有些页面就没有,所以...
即然有了工具,就随便抄几个网站吧,声明:我可没用他来做坏事!没想到,几乎每三个网站就会有一个网站有此漏洞,短短10分钟,就抄出3个网站来了。而且其中是一个著名的大型网站,不过其密码用md5加密了,而且管理登陆页也找不到。
因此,总结了一些经验,也许对以后的网站开发有点儿作用。
1.每个带输入参数的页面,必须对输入参数进行判断。
2.密码用MD5加密,基本上来说,只要是6位以上,有大小写的密码,是不可能被解密的。如果是在6位以下的简单密码,用MD5暴力破解器可在很短的时间内破解出来。所以设密码一定要慎重,尤其是管理员密码,直接关系到网站的安全。
3.如果使用sqlserver做为网站数据库,不要用sa来连接。要新建一个用户来连接,防止SQL注入时通过xp_cmdshell等sqlserver内置的存储过程来创建服务器管理组的用户。
4.管理区目录不要和一般的页面程序放在一起,最好能取个他人猜不到的目录,或者进行IP判断(只允许你公司静态IP或者动态IP段访问)。
就这么多了,以后想到再补充。