e股脑电脑教程网
  • 首 页
  • 操作系统
  • 应用软件
  • 下载工具
  • 影音视频
  • 办公软件
  • 媒体制作
  • 网站建设
  • 平面设计
  • 数据库
  • 程序开发
  • 视频教程
编辑推荐: | 文章搜索:
您现在的位置: e股脑 >> 程序开发 >> CGI教程 >> CGI教程(9)编写安全的CGI脚本 >> 教程正文
 
教程搜索
 
 
相关教程
  • 跟我学Perl(2)
  • 跟我学Perl(1)
  • 关于CGI读写COOKIE的编程(1)
  • CGI教程(13)CGI 测试
  • 关于CGI读写COOKIE的编程(2)
  • CGI教程(12)ErrorDocument 指令
  • CGI教程(10)CGI 规范之四
  • CGI教程(10)CGI 规范之三
  • CGI教程(10)CGI 规范之二
  • CGI教程(11)错误脚本
  • CGI教程(10)CGI 规范之五
  • CGI教程(10)CGI 规范之一
  • CGI教程(9)编写安全的CGI脚本
  • CGI教程(8)记录用户记录脚本之二
  • CGI教程(7)解码数据发送给CGI脚本之三
  • CGI教程(8)记录用户记录脚本之一
 
 

图文教程


  • 教你在窗口模式下演示ppt

  • 将其他Email邮件转移到Gmail邮箱中

  • Vista破解TCP/IP后进不了系统咋办

  • Vista下用DriveSpacio查看磁盘空间

  • Windows抢了谁的饭碗 非主流操作系统To
 
 
赞 助 商
 
 
CGI教程(9)编写安全的CGI脚本
  • 来源:e股脑
  • 点击次数:
  • 更新时间:2006-9-5
编写安全的CGI脚本

  不管在什么时候,一个程序与网络客户端联系的时候,就有可能客户端会攻击这个程序以获得未授权的访问。即使是无恶意地看看你的脚本也会你的系统的完整型构成危险。出于这种想法,本节教程将教你编写安全的脚本以避免任何的攻击。

  首先要注意eval语句。PERL和Bourne shell语言为用户提供了一个eval命令,它允许你构造一个字符串并且有个注释器来执行这个字符串。这是一个不安全的隐患。我们来观察一下以下的语句,它是用Bource shell编写的:

eval `echo $QUERY_STRING | awk 'BEGIN{RS="&"} {printf "QS_%s\n",$1}' `

  这条语句将查询字符串转换未一系列的可变的设置命令。但是不幸的是,这个脚本可以通过发送给它一个以逗号”;”开头的查询字符串来攻击。看看这有多么的危险!

  其次,不要委任客户端做任何事情。一个品德好的客户端将会避免发送任何带有攻击性的查询字符串给Bourne shell,这样就会避免脚本错误解释字符串而导致一些不安全的事情。但是,”防人之心不可无”,对于哪些品德恶劣的客户端可能就会使用一些特殊的字符串来混淆你的脚本以获得未授权的访问。所以一定不要委托客户端做任何事情。

  还要十分注意popen()和system()的使用。如果你使用任何来自客户端的数据构造一个命令行来调用popen()或者system(),要确信在任何字符之前加一个反斜杆,因为这样会在调用函数之前给Bourne shell以特殊的意义。具体做法你可以利用简短的C函数来实现。

  最后,为了安全起见,关闭服务端附件(SSI)。如果很不幸,你的服务器支持SSI,那么请一定要为你的脚本目录关闭它!这个SSI可能被客户端滥用,他们可以偷看到他们发送的字符串直接输出的脚本。

  本脚本只是概括性质地介绍安全的措施,如果有知道关于安全和WWW的问题,你可以参见一些WWW安全常见问题文本(FAQ)。

  • 上一篇教程: CGI教程(8)记录用户记录脚本之二
  • 下一篇教程: CGI教程(10)CGI 规范之一
  •  

    关于本站 | 广告联系 | 版权声明 | 使用帮助

    Copyright © 2004-2008 www.egunao.com All rights reserved.