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

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

关注

评论

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

Django REST项目实战:在线中文字符识别

TiAmo

django RESTful 三周年连更

终于可以彻底告别手写正则表达式了

Java你猿哥

Java ssm 表达式 GPT

从原理聊JVM(三):详解现代垃圾回收器Shenandoah和ZGC

京东科技开发者

G1 ZGC JVM 企业号 4 月 PK 榜 Shenandoah

AREX 流量回放实践分享

AREX 中文社区

自动化测试 回归测试 流量回放

devops|中小公司效率为王,没必要度量

laofo

DevOps 研发效能 工程效率 效能度量 研发效能度量

华为云搜索服务CSS,助力企业挖掘数据价值

轶天下事

从此脱离CRUD!Github热榜第三架构师速成手册成功颠覆了我的认知

Java你猿哥

架构 ssm 架构设计 架构师 微服务实战

【云原生】Docker之创建并进入mysql容器

A-刘晨阳

MySQL Docker Linux 三周年连更

MD5 到底算不算一种加密算法?

架构精进之路

算法 后端 加密 md5 三周年连更

华为云云速建站,助力企业搭建网站省心又省力

YG科技

华为云文字识别OCR-助力企业办公智能化不断发展

轶天下事

mac上好用的效率软件:Alfred 5 激活版

真大的脸盆

Mac Mac 软件 效率软件

【图解网络协议】面试官:三次握手都不会,回去等通知吧

袁袁袁袁满

三周年连更

MySql中执行计划如何来的——Optimizer Trace | 京东云技术团队

京东科技开发者

MySQL 数据库 企业号 4 月 PK 榜 Optimizer Trace

华为云智能云接入ICA,让世界距离更近

YG科技

爆肝Java九大核心专题,666页内容,我收割了5个大厂offer

Java你猿哥

Java MySQL JVM 消息队列

华为云,用科技开启智慧化生活

轶天下事

华为云CDN助力企业网速腾飞!

轶天下事

设计模式的故事之三:责任链模式

Java你猿哥

Java 设计 ssm 责任链模式 责任链

OneNet服务器LWM2M物联网协议(智能井盖方案)

DS小龙哥

三周年连更

手撕代码系列(二)

Immerse

JavaScript 前端 ES6 ES6-ES12 JavaScript4

华为云医疗智能体,助力医疗健康加速智能化

YG科技

使用Pinia:让Vue状态管理更简单

格斗家不爱在外太空沉思

Pinia 三周年连更

Matlab实现PSO算法

Shine

三周年连更

重磅|阿里云无影云电脑“魔方AS05”正式上市

云布道师

无影云电脑

为什么选择华为云CDN?这些案例告诉你

轶天下事

openEuler NFS+协议全新发布:实现NAS存储性能与可靠性倍增

openEuler

Linux 操作系统 存储 openEuler

系统认知篇:防腐层、门面模式及适配模式的本质 | 京东云技术团队

京东科技开发者

软件架构 门面效应 适配器模式 企业号 4 月 PK 榜 防腐层

离散信源 R(D)计算及限失真信源编码定理

timerring

信息 信息论

算法题每日一练: 青蛙跳台阶

知心宝贝

数据结构 算法 前端 后端 三周年连更

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