教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> 编程基地 >> CGI >> CGI的安全(二) RSS订阅
CGI的安全(二)
CGI的安全(二)(4)
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
| 用户提交表单; |—————————————>|| 
|浏览器将输入加 |<—————————————| 服务器 | 
|密,发送加密信息|分析CGI输出|| 
--------------- | | -------------- 
 | | 加 || /\CGI 
  阻止 修补密 || ||输 
  恶意 再次输 || ||出 
 hacker阻止入 || ||(解密) 
  \/ || 
  _____________ 
 | CGI | 
 |解密处理输入,| 
 |发出响应。 | 
  ------------- 
 (图3) 

  之前,发展你自己的安全处理协议几乎是不可能的。感谢Java这样的语言,最近在客户端处理所作的创新,使得这个发展变成可能。 

  方法是产生一个标准HTML格式扩展的Java接口。当Java的提交按钮被选择时,java Applet会在利用标准的POST HTTP请求将它发送到Web服务器前先将值加密 
(参照图4) 

 Web浏览器 
_______________ ______________ 
|JAVA APPLET| 加密数据|| 
| 表单;用户提交 |—————————————>|| 
|数据,APPLET加密|<—————————————| 服务器 | 
|数据,发给服务器|CGI输出|| 
--------------- -------------- 
 加 || /\CGI 
 密 || ||输 
 数 || ||出 
 据 || || 
  \/ || 
  ________________ 
 | CGI| 
 |使用与APPLET相同| 
 |方案解密数据并处| 
 |理,发出解密响应.| 
  ---------------- 
  (图4) 

  使用Java作为客户机来发送和接收加密的数据将允许你使用自己定制的加密方案,而不需要一个昂贵的商业服务器。 

  因此,在网络上安全保密地传送数据信息需要调整浏览器和服务器之间的通信路径,有一些是不能仅仅靠CGI就能够控制的。目前有两种加密客户机/服务器信息处理的建议:SSL(Secure Sockets Layer)和SHTTP(Secure HTTP),分别由Netscape和EIT(Enterprise Integrations Technology)提议。关于这点,目前还不清楚哪一个将成为标准;很多公司在他们的服务器中两种都采用了。因此,知道如何在这两者中编写CGI程序是很有用的。 
3
-1.SSL 

  SSL是一个协议独立的加密方案,在网络信息包的应用层和传输层之间提供了安全的通道(参照图5)。简单说来,就是HTML或CGI经过了幕后的 
服务器进行了加密处理,然而对HTML和CGI的作者来说是透明的。 

___________________________________ 
|浏览器| 传输层加密数据|服务器| 
|(发出标准的HTTP |—————————————>|(解密数据;解释成标准| 
|请求) |<—————————————|请求并发出标准响应) | 
---------------- 传输层加密数据-------------------- 

 (图5) 

  因为客户端和服务器端网络程序处理加密过程,几乎你的所有的CGI脚本不需要进行安全事务的修正。有一个显著的例外。一个nph(no-parse-header)的CGI程序绕过服务器而直接与客户端进行通信。因此,nph的CGI脚本不会经过加密处理,因为信息未得到加密。受此影响的一个值得注意的CGI应用程序是Netscape服务器推动的动态实现(Netscape server-push animations)。我怀疑这是主要应该值得注意的,然而,更有可能因为要安全的传输敏感信息而牺牲页面中的动画。 

3-2.SHTTP 

  SHTTP采用一种和SSL不同的方法。它通过扩展HTTP协议(应用层)来运作,优于一个较低层。因此,尽管SSL可以应用于所有的网络服务,然而SHTTP是一个特定的Web协议。 

  另外,还有其它的优点。作为HTTP的扩展集,SHTTP全兼容于HTTP和SHTTP的浏览器和服务器。为了使用SSL,你必须有一个支持SSL的浏览器和服务器。另外,SHTTP是一个更灵活的协议。例如,这个服务器可以指定首选的加密方案。 

  SHTTP处理依赖于附加的HTTP头。因此,如果你想让你的CGI程序采用SHTTP的加密处理,你需要包含适当的头。例如,替换简单返回HTTP头。 

  Content-type:text/html 

  当一个SHTTP服务器从CGI应用程序中收到这个信息,它会知道在将其发送到浏览器之前将信息加密。一个非SHTTP的浏览器将忽略附加的头。 

  关于使用SHTTP的更多的信息,请参照SHTTP的说明书: 

http://www.commerce.net/information/standards/drafts/shttp.txt 
4.概要 

  安全是你在处理网络应用程序(例如WWW)中不可避免的一件事。如果你的Web服务器没有安全的配置,那么编写安全的CGI应用程序就不是非常有用的了。一个正确配置的Web服务器,从另一方面讲,可以最小限度的减少因为糟糕的CGI脚本而带来的损害。 

  大体上,我们应该记住下面的原则: 

A.你的程序应当只能提供你指定的服务。 

B.不到必要的时候不暴露任何有关你的服务器的信息。 

C.如果有人成功的闯入你的系统,应最小限度的减少损害。 

D.确定你的应用程序是安全可靠并且严密的。 

  当你编写CGI程序时,要特别注意你的编程语言的局限性(或不足)以及传递给shell的不确定的变量。 

来源:十度教育
作者:
关键字:CGI,安全
发表日期:2005-9-28 14:26:02

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:关于CGI读写COOKIE的编程   下一篇:CGI的安全(一)


共4页 9 7 [1] [2] [3] [48 :>

2009-1-8 5:41:30
本文的相类似文章
  • 2007年网络安全要注意的七项举措
  • Norton安全特警实用技巧四则
  • 一键修复所有系统安全漏洞!
  • 360安全卫士发布恶意软件判别标准
  • 个人系统的网络安全保护入门
  • 玩转网络银行 便捷安全两不误
  • 网络安全:三分技术加七分管理
  • 2005年中国网络安全十大热点事件
  • 05年网络安全检测报告
  • 打开IE的第五道安全防线
  • 在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com