关于ASP网站设计安全性探讨(2)
作者:佚名; 更新时间:2014-12-05

  登陆验证。对于很多网页,特别是网站后台管理部分,是要求有相应权限的用户才能进入操作的。但是,如果这些页面没有对用户身份进行验证,黑客就可以直接在地址栏输入收集到的相应的 URL 路径,避开用户登录验证页面,从而获得合法用户的权限。所以,登陆验证是非常必要的。
  SQL 注入。SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。
  SQL 注入攻击是最为常见的程序漏洞攻击方式,引起攻击的根本原因就是盲目信任用户,将用户输入用来直接构造 SQL 语句或存储过程的参数。以下列出三种攻击的形式:
  A.用户登录: 假设登录页面有两个文本框,分别用来供用户输入帐号和 密码,利用执行SQL 语句来判断用户是否为合法用户。试想,如果黑客在密码文本框中输入 'OR 0=0,即不管前面输入的用户帐号和密码是什么,OR后面的 0=0 总是成立的,最后结果就是该黑客成为了合法的用户。
  B.用户输入:假设网页中有个搜索功能,只要用户输入搜索关键字,系统就列出符合条件的所有记录,可是,如果黑客在关键字文本框中输入' GO DROP TABLE 用户表,后果是用户表被彻底删除。
  C.参数传递: 假设我们有个网页链接地址是 HTTP://……asp?id=22, 然后 ASP在页面中利用 Request.QueryString['id']取得该 id值,构成某 SQL 语句, 这种情况很常见。可是,如果黑客将地址变为HTTP://……asp?id=22 and user=0 ,结果会怎样?如果程序员有没有对系统的出错提示进行屏蔽处理的话,黑客就获得了数据库的用户名,这为他们的进一步攻击提供了很好的条件。
  解决方法:以上几个例子只是为了起到抛砖引玉的作用,其实,黑客利用“猜测+精通的sql 语言+反复尝试”的方式,可以构造出各种各样的sql入侵。作为程序员,如何来防御或者降低受攻击的几率呢?作者在实际中是按以下方法做的:
  第一: 在用户输入页面加以友好备注,告知用户只能输入哪些字符;
  第二: 在客户端利用 ASP 自带的校验控件和正则表达式对用户输入进行校验,发现非法字符,提示用户且终止程序进行;
  第三: 为了防止黑客避开客户端校验直接进入后台,在后台程序中利用一个公用函数再次对用户输入进行检查,一旦发现可疑输入,立即终止程序,但不进行提示,同时,将黑客IP、动作、日期等信息保存到日志数据表中以备核查。
  第四: 对于参数的情况,页面利用 QueryString 或者 Quest 取得参数后, 要对每个参数进行判断处理,发现异常字符, 要利用 replace 函数将异常字符过滤掉,然后再做下一步操作。
  第五:只给出一种错误提示信息,服务器都只提示HTTP 500错误。
  第六:在IIS中为每个网站设置好执行权限。千万别给静态网站以“脚本和可执行”权限。一般情况下给个“纯脚本”权限就够了,对于那些通过网站后台管理中心上传的文件存放的目录,就更吝啬一点吧,执行权限设为“无”好了。
  第七:数据库用户的权限配置。对于MS_SQL,如果PUBLIC权限足够使用的绝不给再高的权限,千万不要SA级别的权限随随便便地给。
  3.4 传漏洞
  诸如论坛,同学录等网站系统都提供了文件上传功能,但在网页设计时如果缺少对用户提交参数的过滤,将使得攻击者可以上传网页木马等恶意文件,导致攻击事件的发生。
  防文件上传漏洞
  在文件上传之前,加入文件类型判断模块,进行过滤,防止ASP、ASA、CER等类型的文件上传。
  暴库。暴库,就是通过一些技术手段或者程序漏洞得到数据库的地址,并将数据非法下载到本地。
  数据库可能被下载。在IIS+ASP网站中,如果有人通过各种方法获得或者猜到数据库的存储路径和文件名,则该数据库就可以被下载到本地。
核心期刊快速发表
Copyright@2000-2030 论文期刊网 Corporation All Rights Reserved.
《中华人民共和国信息产业部》备案号:ICP备07016076号;《公安部》备案号:33010402003207
本网站专业、正规提供职称论文发表和写作指导服务,并收录了海量免费论文和数百个经国家新闻出版总署审批过的具有国内统一CN刊号与国际标准ISSN刊号的合作期刊,供诸位正确选择和阅读参考,免费论文版权归原作者所有,谨防侵权。联系邮箱:256081@163.com