太平洋汽车网 | 太平洋游戏网 | 太平洋女性网 | 太平洋亲子网 | PC购物网  网站地图  
太平洋电脑网
首    页
产业资讯
行情报价产品库
数据调研评测室
服 务 器网络设备
方案应用办公设备
软件资讯产品论坛PCclub社区
下载中心软件论坛摄影部落
渠道商情通信游戏科技奥运
图库二手招聘培训
diyDIY硬件 手机手  机 笔记本笔记本 台式机台式机

数码世界

数码相机数码相机 随身听MP3/MP4 摄像机摄像机 数字家电数字家电 精品廊精品廊
北京 上海 广州 深圳 香港 广西 重庆 武汉 山东 江苏 辽宁 福建 成都 西安 江西 湖南 黑龙江 台湾
 
 
   
软件 首页 | 资讯 | 应用 | 评测 | 教你学电脑 | 信息安全 | 创意设计 | 开发特区 | 软件下载 | 专题 | 社区
 
软件 特色专区: QQ大本营 | Vista专区 | msn总动员 | 组网专栏 | Photoshop | 视频专栏 | 常用软件
 
您现在的位置: 软件  >  开发特区  >  Web开发  >  CGI

CGI教学:CGI安全问题

出处:PConline[ 2004-02-14 09:33:54 ] 作者:Jeffry Dwight 责任编辑:pjl

导 读  
  CGI教学:CGI安全问题
2. 谁也不信 几乎所有的CGI 安全问题都来自与用户的交互。接收来自外部数据源的输入之后一个简单的、可预见的CGI程序突然向多方向伸展,每个方面都可能有最小的缝隙使得“黑客”可以溜进来。正是与用户的这种交互——通过表单或文件路径——才给予了CGI 脚本这种能力,但同时也使得它们成了运行在Web服务器上的最潜在的危险部分。 编写安全的CGI 脚本很大程度上是创造性和妄想的结合。编写者必须有足够的创造性才能想到用户使用的,不管是无意地还是别的所有的可能隐含导致问题的发送数据的方式。而且必须有点妄想,因为有可能不知道什么时候、什么地方、他们将会一一加以试验。 2.1 两种导致问题的方式 当用户登录进入Web 站点并开始进行交互访问时,他们能以两种方式惹麻烦。一种是不遵守规则,歪曲或违反页面中建立的每个限制或约束;另一种方式是按要求去做。 大部分CGI 脚本是作为HTML表单的后台运行的,负责处理由用户输入的信息并提供某种定制的输出。因为在这种情况下,大部分CGI 脚本编写时都等待某种特殊格式的数据。它们期望用户的输入能匹配收集并发送信息的表单。不过事情并不总是这样。用户可以有许多种办法绕过这些预定义的格式而给脚本发送一些看起来是随机的数据。CGI 程序必须对此有所准备。 其次,用户可以给CGI 脚本发送所期望的数据类型,按预期的形式在表单中填入每个字段。这种类型的提交可以是想像中的来自某个与站点交互的无意的用户,也可能来自某个恶意的“黑客”,凭借他有关操作系统和Web 服务器软件的知识并利用常见的编程错误。这些入侵,表面上一切都正常,却是最危险的、最难检测出来。Web 站点安全性依赖干这种入侵的防止。 2.2 不要相信表单数据 在CGI 编程中最常见的安全失误就是相信从表单传到脚本的数据,用户是未知的一大堆人,他们总能找到一些编程人员从来没想到过的发送数据的方法--而且是程序员认为几乎不可能的方法。 脚本必须对这些加以考虑。例如,下面这些情形都是可能的: 1)从一组单单选按钮中选择的结果可能不是表单中提供的选项之一。 2)来自某个文本字段的数据长度可能大于MAXLENGTH字段允许的长度。 3)字段本身的名字可能与表单中指定的不相符。 2.3 不合理数据的来源 因—些无意的或是有意的原因,导致自己的脚本接收到不知道如何去处理的数据,有可能导致非预期的——同时很危险的——行为。 下面的代码实现了一种表单并向某个搜索yahoo!数据库的CGI脚本送垃圾。该脚本设计得很好并且很安全,因为它忽略了不认识的输入。 <FORM METHOD="POST" ACTION="http://search.yahoo.com/bin/search"> Enter your name,first then last: <INPUT TYPE="TEXT" NAME="first"> <INPUT TYPE="TEXT" NAME="last"> </FORM 也许用户碰巧(或者意识地)将URL编辑为这个CGI脚本。当浏览器向CGI程序提交数据时,要简单地将输入表单中的数据连到CGI的URL上(用于GET METHODS),就像用户可以很容易地将Web页面地址输入到他的浏览器一样,用户也可以自己修改发送给这个脚本的数据。 例如,当单击表单上的Submit按钮时,Netscape将一个长串字符放入Location字段,该串由CGI的URL后接一串数据组成,大部分看起来像表单中定义的NAMES和VALUES。如果愿意的话,可以自由地编辑Location字段的内容并按自己的意愿修改数据:增加表单中没有的字段,扩展由MAXLENGTH选项限制的文本数据,或者几乎任何对象。以下显示了某CGI脚本预期从表单中提交的URL。 http://www.altavista.digit.com/cgi-bin?pg=q&what=web&imt=&q=%22An+Entirely+Other%22 用户可以修改同一URL,CGI脚本仍被调用,但现在接收的是非预期的数据。为了保证安全,该脚本应该在编写时就设计为能将这种输入识别为不被要求的数据并加以拒绝。 最后,某个有野心的"黑客"也许会写一个程序连到Web上的服务器并假装是一个Web浏览器。该程序可能做一些任何一个真正的web浏览器从未做过的事,例如给CGI脚本发送成百兆字节的数据。如果CGI脚本不限制从POST METHOD读取数据,那怎么办?它有可能会崩溃,也许允许那个崩溃了系统的人访问系统。
前一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页
下一篇:CGI教学:CGI常用环境变量
 今日论坛热贴推荐
·几秒钟合并N个TXT文件
·技巧:怎么清除Windows 7视频锯齿现象
·揭密网游帐号是怎样被盗的全过程
·没有刻录机?Windows 7硬盘安装四大法
·Windows 7将解决微软的“纠结”
·全球首款装正版win7的thinkpad x200
·十大理由决定Windows 7成败
·微软官网首次提及Windows 7 SP1
·从Windows桌面看性格【娱乐】
·惊现google官方Chrome Os下载!?
更多资讯请点击: CGI教学  CGI安全问题 

  发给好友 我要报错 投稿给我们 加入收藏 返回顶部  
相关文章  

About Us | 关于我们 | 隐私政策 | 广告服务 | 联系我们 | 招聘精英 | 网站律师 | 合作联系 | 友情链接
太平洋专业网站群:  太平洋电脑网 ┊ 太平洋汽车网 ┊ 太平洋游戏网 ┊ 太平洋女性网 ┊ 太平洋亲子网

广东省通信管理局
ICP证粤B2-20040647
互联网清理整顿
技术支持与报障:support@pconline.com.cn
        020-87568837         
对本站有任何建议、意见或投诉,请点这里在线提交.
本网站简体、繁体两种版本,以简体版为准
PConline版权所有,未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任