ASP网站安全问题

1,找到密码和账号是通过SQL注入找到的。虽然MD5加密的密码不能被逆向破解,但是存在SQL注入漏洞的话对方完全可以用代码直接将你的密码改为AAABBBCCCDDDEEEF,也就是密码为1。就可以直接登录了。所以最关键的问题在于如何防止SQL注入。
SQL注入方式已经太多资料了,我就不转载了。简单的说,SQL注入就是通过巧妙插入SQL代码,让系统执行,从得到的结果来一步步解开破解信息。而这个代码,只要是交互的地方都有可能被插入。例如字符串传递:XXX.asp?id=****,或者在用户名输入框,或者搜索框.......
因此,我们只要保证所插入的信息没有SQL代码就可以了。
例如,用户登录程序中,我们只要把
username=request.Form("username")
修改为
username=trim(request.Form("username"))
也就是去掉空格,这样SQL代码就没法用,就基本可以防范从用户登录界面进行SQL注入了。但是还不够,因为空格可以用unicode码代替,所以我们还要把unicode特有的字符%替换掉,就没问题了。
对于从字符串传递的参数,我们也可以同样处理,用trim()去除空格,然后用replace替换% 。这样还不够,还应再把()小括号替换掉,把单引号'替换掉。
如果是id之类纯数字,还应在用cint()强制转为数字,如果不是数字就会在这一步出错。

2,这个问题实际上和第一个问题是一样的,就是从防止SQL注入出发。

3,只要你的网站还有输入的地方,而且这个输入的地方会被诸如sql="select * from asdf where id="&id这样的语句执行,就必须防范SQL注入。Access+asp除了防范SQL注入,还要防范暴库,也就是被黑客用一些语句判断出你的数据库地址,把你整个数据库下载下来。。。。到时候还不是想怎么看就怎么看,想怎么玩就怎么玩!
防止数据库被下载,你可以在数据库里面新建一个表,表里面输入一个文本内容为<%asdfasdfasdf%>随便输,反正只要不能被执行就可以了。然后把数据库改名为.asp后缀,这样对方试图下载的时候就会提示:asp解析出错,第XX行。这样就不用怕暴库了。此外配置mdb文件解析对应,配置数据池等等方法都可以比较有效的防止暴库。


上一篇: asp作品保护方案
下一篇: ASP漏洞大全
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: 2280
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 300 字 | UBB代码 开启 | [img]标签 关闭