写点什么

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:252177
用户头像

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

关注

评论

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

什么是跨境数据传输。如何避免跨境数据传输出现的问题

镭速

跨境数据传输

这 4 个系统可靠性评估指标,可能比 MTTR 更靠谱!

LigaAI

研发管理 质量指标 研发效能度量 可靠性度量 企业号 8 月 PK 榜

Spring Boot Starter 剖析与实践

京东科技开发者

Spring Boot spring Boot Starter 依赖 企业号 8 月 PK 榜

ChaosBlade 项目指南:我是如何为社区贡献 Redis 故障场景

阿里巴巴云原生

redis 阿里云 云原生 ChaosBlade

深度解读陕西省国资委最新发文,聚焦国资国企建设一流司库

用友BIP

全球司库 国资国企

5分钟get:Uni-App网络请求完美封装指南!

陇锦

微信小程序 uni-app 前端开发 uniapp 前端开发框架

企业税务管理为什么需要数智化转型

用友BIP

税务管理

中企全球化发展:用友联合山海图以数字化引领印尼工程建筑行业转型

用友BIP

中企出海

CGLIB动态代理对象GC问题排查 | 京东云技术团队

京东科技开发者

GC cglib CGLIB 动态代理 企业号 8 月 PK 榜

PoseiSwap:首个基于模块化设施构建的订单簿 DEX

威廉META

“金税四期”背景下企业税务风险管控有哪些具体措施?

用友BIP

金税四期

【专家观点】贸易企业的数智化绩效管理

用友BIP

贸易

PoseiSwap:首个基于模块化设施构建的订单簿 DEX

鳄鱼视界

加速智慧税务建设,拥抱税务数智化转型

用友BIP

税务管理

百度APP iOS端包体积50M优化实践(五) HEIC图片和无用类优化实践

百度Geek说

ios 性能优化 企业号 8 月 PK 榜

企业诊断屋:服饰美妆电商如何用A/B测试赋能业务

字节跳动数据平台

大数据 A/B 测试 对比实验 企业号 8 月 PK 榜

硬核来袭!中国AI大模型峰会“封神之作”,开发者们不容错过!

herosunly

大语言模型

数仓性能优化:倾斜优化-表达式计算倾斜的hint优化

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 8 月 PK 榜

直播丨如何用最新的 Serverless 技术让文化古籍“活过来”?

阿里巴巴云原生

阿里云 Serverless 云原生

直播软件APP源码iOS提交到APP store系列之上架指南

山东布谷科技

软件 直播 源码搭建 iOS APP上架 app store

NineData支持全版本的企业级Oracle客户端,现已发布

NineData

人工智能 数据库 oracle Oracle ACE NineData

助力618-Y的混沌实践之路 | 京东云技术团队

京东科技开发者

测试 混沌工程 系统稳定性 企业号 8 月 PK 榜

医疗知识图谱问答 ——Neo4j 基本操作

北桥苏

nosql neo4j 数据库、

禁止别人调试自己的前端页面代码

极客飞兔

JavaScript 前端 安全 加密 设计规范

构建高效物理计划:从逻辑查询到算子实现

KaiwuDB

KaiwuDB SQL编译 物理计划构建

2023年开放原子校源行(清华大学站)成功举行

开放原子开源基金会

开源 开放原子开源基金会 清华大学

大文件传输的有效可用方式

镭速

大文件传输 传输大文件

状态机的介绍和使用 | 京东物流技术团队

京东科技开发者

dsl 状态机 数学模型 企业号 8 月 PK 榜

MySQL 的 Join 查询及 Hash Join 优化 | StoneDB 技术分享会 #3

StoneDB

MySQL 数据库 HTAP StoneDB 企业号 8 月 PK 榜

“年中技术盘点:新兴技术的影响与未来展望”征文获奖作品合集

InfoQ写作社区官方

内容合集 征文活动 热门活动

硬核来袭!中国AI大模型峰会,开发者不容错过这场夏季盛会

dvlinker

人工智能 百度飞桨 AI大模型 文心大模型

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