写点什么

Shellshock 漏洞证明是时候放弃 CGI 技术了

  • 2014-10-14
  • 本文字数:964 字

    阅读完需:约 3 分钟

最近,被类 UNIX 系统广泛使用的 Bash 软件曝出了一系列已经存在数十年的漏洞( Shellshock ),在业界引起了非常大的影响。不少 Linux 发行版本连夜发布了修复版本的 Bash,在服务器领域占有不少份额的 FreeBSD 和 NetBSD 已经默认关闭了引起漏洞的功能。InfoQ 也及时带来了关于 Shellshock 的详细报道

在这个漏洞的风波逐渐平息之余,不少业内人士也在思考,它为何波及如此之广,影响如此之大。 InfoWorld 的专栏作者 Andrew C. Oliver 在一篇文章中表达了自己看法,他认为CGI 技术的普及是个错误,正是因为CGI 技术的不合理之处,Shellshock 才有机可乘。

CGI 技术是 Web 技术刚兴起的时候发明的,它是最早的可以创建动态网页内容的技术之一。它会把一个 HTTP 请求转化为一次 shell 调用。而 Shellshock 的原理是利用了 Bash 在导入环境变量函数时候的漏洞,启动 Bash 的时候,它不但会导入这个函数,而且会误把函数定义后面的命令也执行一遍。在有些 CGI 脚本的设计中,数据是通过环境变量来传递的,这样就给了数据提供者利用 Shellshock 漏洞的机会。对此,Oliver 抱怨道:

为什么有人会认为,通过 HTTP 请求给一个陌生人访问 shell(哪怕是受限的)的机会是一个好主意呢?我不理解。

Oliver 把 CGI 技术比作“上了膛的武器”,程序员必须非常谨慎地使用它,写出优秀的脚本。但在现代的商业实践中,雇佣优秀程序员已经不是一个必选项,大量的廉价程序员很多时候也能合力完成工作。能写出考虑周全的 CGI 脚本的人越来越少,这也使得 CGI 技术更不合时宜了。

Oliver 甚至觉得,用 C 语言编写的动态网页程序都要比 CGI 好一些,因为避免 C 语言的缓冲溢出问题其实并不难,如果程序员不给自己挖坑,并且认真做好单元测试的话,问题不会太大。

编写水平糟糕的 CGI 脚本,确实是互联网上可利用漏洞最多的技术之一了。当然网络、计算机架构等也有可能存在漏洞,但是 CGI 从诞生之初就是一个设计错误,经历此次 Shellshock 风波,其弱点也再次暴露在公众面前。Oliver 也呼吁大家,逐步放弃 CGI 技术,“先移除那些暴露在公众访问之下,又需要非常仔细编写才能不出问题的脚本”。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2014-10-14 03:252658
用户头像

发布了 77 篇内容, 共 40.5 次阅读, 收获喜欢 26 次。

关注

评论

发布
暂无评论
发现更多内容

Playwright 、Cypress 和 Selenium 对比

测试人

软件测试

SQLShift 重大更新:Oracle→PostgreSQL 存储过程转换功能上线!​​

爱可生开源社区

oracle sql postgresql 数据迁移

信创迁移必看!X86 迁 Arm 竟能全自动适配?

北京好雨科技有限公司

arm rainbond 企业号 6 月 PK 榜 国产化迁移

VMware VeloCloud SD-WAN 6.3.1 新增功能简介

sysin

velocloud

2025 IoTDB 用户大会定档!7 月 5 日北京,探索下一站:DB + AI

Apache IoTDB

做数字化,ERP、MES、SCM、CRM、PLM五大系统缺一不可吗?

积木链小链

数字化转型 管理系统 智能制造

国产化数据库替换mysql 之 TiDB 应用实践

TiDB 社区干货传送门

TiDB第四届征文-业务场景实战

小鹏,用AI“赌”明天

趣解商业

华为 汽车 小鹏汽车

这款AI自动生成播客工具,必须收藏!

Immerse

产品动态速递|Aloudata CAN 指标定义能力与查询加速能力再次增强、用户体验进一步升级

Aloudata

数据分析 指标平台 指标开发 ChatBI 智能问数

AI 本地化部署的主要问题

北京木奇移动技术有限公司

AI应用 软件外包公司 AI本地化

NocoBase 本周更新汇总:增加工作流分类管理

NocoBase

开源 低代码 零代码 无代码 版本更新

网络安全创新论坛 | 百度大模型安全斩获“2024年十大优秀网络安全创新成果”

百度安全

AI私有化部署的费用

北京木奇移动技术有限公司

AI技术 软件外包公司 AI私有化

前沿论文分享 | 京东零售技术团队5篇论文入选WWW 2025

京东零售技术

谷歌云代理商 | 游戏行业专属方案:谷歌云实时多人游戏服务器架构

Cloud Ace 云一

TiDB 发布 MCP Server:引领国产数据库迈向智能 AI 代理新应用范式

TiDB 社区干货传送门

新版本/特性发布 数据库前沿趋势 TiDB第四届征文-运维开发之旅

开发者为什么要选择低代码平台?附低代码工具选型与实施指南

优秀

低代码 低代码平台 低代码开发工具 低代码工具

TiDB 社区助力TiDBer共同成长

TiDB 社区干货传送门

TiDB第四届征文-运维开发之旅

记一次悲观锁重试到达上限报错分析

TiDB 社区干货传送门

6.x 实践 OLTP 场景实践

MES系统如何解决电机制造业自动化生产管理?

万界星空科技

mes 万界星空科技mes 制造业工厂 电机行业 电机MES

基于华为开发者空间,体验鲲鹏DevKit之Python字符串拼接系统性能分析

华为云开发者联盟

Python 鲲鹏 DevKit 开发者空间

Shellshock漏洞证明是时候放弃CGI技术了_语言 & 开发_曹知渊_InfoQ精选文章