2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

GitHub 遭遇 Mass Assignment 漏洞攻击

  • 2012-03-19
  • 本文字数:728 字

    阅读完需:约 2 分钟

GitHub 最近遭遇了一场 Ruby on Rails 漏洞攻击,该漏洞被称为 mass assignment。此漏洞被认为不仅影响了大量基于 Ruby 的网站,还对使用 ASP.NET MVC 和其他 ORM Web 框架的网站造成了破坏。

Mass assignment 用于将表单数据映射为对象,它在单独使用时是一项安全且高效的技术。这与 ASP.NET 中的数据绑定异曲同工,并且后者在单独使用时也同样很安全。其实,真正的漏洞是由于粗心大意地混用了 mass assignment 和 ORM。

考虑这样的场景:数据库包含一张“用户”表,其中混杂了敏感和非敏感数据,例如可能有些列代表用户显示姓名、电子邮件地址以及是否为管理员。开发人员希望创建一个页面修改显示姓名及电子邮件地址。为了达到这个目的,他们使用 Rails 或 MVC 脚手架自动生成了域对象,或许还有 view 本身。接下去,他们将用户无法编辑的字段,如“是否为管理员”复选框从 view 中移除。

如果开发人员忘记将 IsAdministrator 属性从域对象中移除,那么一个安全漏洞便就此产生。如果他们没有进行移除,那么 mass assignment 或数据绑定器可能会陷入某种圈套,它们会在合法改动中更新不该修改的属性。接下去,当记录保存时,ORM 库会悄无声息地存储新值。

有三种靠谱的方案可以解决该问题:

  • 标记不可被更新的属性,让 mass assignment/ 数据绑定器将其忽略;
  • 彻底清除业务对象中实际不需要的属性;
  • 创建模型专门接受更新请求,并手工将它们映射到 ORM 对象或存储过程调用。

应当指出,这并不是一个新的漏洞。我们可以很容易地找出 4、5 年前关于mass assignment 的警告,例如标题为“ Mass Assignment,黑客们的最爱”以及“不想被黑就使用attr_protected ”的文章。这次唯一不同的是受害站点知名度较高。

查看英文原文: http://www.infoq.com/news/2012/03/GitHub-Compromised

2012-03-19 08:422797
用户头像

发布了 125 篇内容, 共 43.7 次阅读, 收获喜欢 5 次。

关注

评论

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

想在 KubeSphere 中进行自定义监控?来瞧瞧这

API7.ai 技术团队

云原生 API网关 监控工具 KubeSphere Apache APISIX

TypeScript 之模板字面量类型

冴羽

JavaScript typescript 翻译 大前端

7个连环问揭开java多线程背后的弯弯绕

华为云开发者联盟

Java 多线程 工作内存 主内存

焱融 YRCloudFile 连获两项重量级认证,展现强劲存储实力!

焱融科技

云计算 分布式 云原生 高性能 文件存储

安全第二话

张老蔫

28天写作

直播:开发者如何抵达元宇宙

融云 RongCloud

开发者 元宇宙

风口之下,音视频应用出海的三大机遇

融云 RongCloud

音视频 通信 出海

前端领域的数据状态统一管理机制

鲸品堂

大前端

低代码平台是伪需求?不好意思,你的同行已经靠它完成转型升级了!

J2PaaS低代码平台

低代码 低代码开发 低代码开发平台 低代码平台

愿当传播通信技术火种的普罗米修斯

融云 RongCloud

通信云 技术大会

架构实战营:模块一作业

Geek_93ffb0

「架构实战营」

如何对Android 11进行网络状态监听

Changing Lin

12月日更

漏洞检测方法如何选?详解源代码与二进制SCA检测原理

华为云开发者联盟

安全 漏洞 软件成分分析 源代码SCA检测 二进制SCA检测

网络安全之SQL注入深入分析

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 SQL注入

青藤:一招制敌!微隔离,让勒索软件不再横行

青藤云安全

基于RPA的自动化优先,正在成为广大组织的主流管理思维

王吉伟频道

RPA 机器人流程自动化 业务流程管理 自动化优先 业务流程自动化

选课排课软件原生开发选课排课小程序模式源码开发

风行无疆

浪潮云跻身中国政务大数据管理平台市场领导者位置

云计算 云计算运维

实用机器学习笔记六:数据清理

打工人!

机器学习 算法 学习笔记 12月日更 实用机器学习

如何处理工作与生活之间的冲突?

石云升

28天写作 职场经验 12月日更

架构训练营-模块一作业

zhongwy

架构实战营

【架构实战营】模块六

衣谷

架构实战营

为什么说泛娱乐出海离不开这家公司

融云 RongCloud

音视频 通信云 社交 泛娱乐 出海

复杂场景下,通信云服务商如何赋能开发者

融云 RongCloud

音视频 通信云 语音社交

6.《重学JAVA》--数据类型

杨鹏Geek

Java 25 周年 28天写作 12月日更

基于云的技术架构设计实践 - 第3篇

hackstoic

签约计划第二季 业务安全

如何建成有效的前端效能度量体系

benyasin

大前端 研发效能 研发度量 研发提效

搭积木一样实现语音社交软件开发

融云 RongCloud

开发者 通信云 语音社交

视镜:华为云媒体质量管理最新实践

华为云开发者联盟

音视频 华为云 媒体质量 视镜

清空数组的几个方式

CRMEB

华为云数据库GaussDB(for Influx)揭秘第二期:解密GaussDB(for Influx)的数据压缩

华为云开发者联盟

数据库 时序数据库 GaussDB(for Influx) 时序数据 数据压缩

GitHub遭遇Mass Assignment漏洞攻击_Ruby_Jonathan Allen_InfoQ精选文章