HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

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

关注

评论

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

异常体系与项目实践

Java 架构

Django笔记三十一之全局异常处理

Hunter熊

Python django 异常处理 全局异常

VM虚拟机 v13.0.2激活版 for Mac许可秘钥

Rose

VMware Fusion Pro 13 VM虚拟机破解版 Mac虚拟机 VMware Fusion激活秘钥

【5.12-5.19】写作社区优秀技术博文一览

InfoQ写作社区官方

热门活动 优质创作周报

MobTech 秒验|助力预热618

MobTech袤博科技

Java面试题1000+附答案大全(合适各级Java开发人员)

采菊东篱下

Java

旭阳数字郗维宝:数智化转型助力焦化企业打破行业困境

用友BIP

升级企业数智化底座 2023用友技术大会

2023年互联网大厂高频Java面试题(附答案)整理总结

架构师之道

Java 面试

HashMap 底层是如何实现的?

javacn.site

java面试

浅谈基于Shapley值的数据融合反欺骗数据判断相关

天翼云开发者社区

数据 Shapley

Java性能分析工具JProfiler注册码下载

Rose

JProfiler激活码 JProfiler Mac永久激活版 Java 分析器 JProfiler中文版 JProfiler下载

Scrum进入疲惫期?三点帮你走出困境

敏捷开发

Scrum 敏捷开发 软件开发 Scrum Master 疲倦期

奋楫扬帆 津鸿智放丨中软国际携手深开鸿亮相第七届世界智能大会

科技热闻

高级修图软件:Affinity Photo中文Mac版

真大的脸盆

Mac 图像处理 图像编辑 编辑图像 处理图像工具

打造绿色低碳存储方案,助推数据中心绿色长“存”

天翼云开发者社区

CIO

原型设计Axure RP 9中文授权码【Mac/win】

Rose

Axure RP 9汉化 Axure RP 9授权码 产品原型设计工具 axure rp9下载 axure rp9安装教程

苹果系统更新:MacOS 11-13.x(PKG系统安装包及IPSW固件)

Rose

mac系统 macOS 13 Ventura 苹果最新系统 苹果系统下载

深入浅出 OkHttp 源码解析及应用实践

vivo互联网技术

okhttp 拦截器 源代码

上海丨阿里云 Serverless 技术实战营邀你来玩!

Serverless Devs

阿里云 Serverless 中间件

全球首款通过HDR Vivid认证的平板发布,华为视频全场景观影体验再升级

最新动态

云原生可观测性的几大误区

Yestodorrow

云原生 APM 监控 可观测性

从 DevOps 到平台工程:软件开发的新范式

SEAL安全

DevOps 软件研发 平台工程

BATJ架构师首推!分布式事务原理与实战,出神入化

程序知音

Java 分布式 java架构 Java进阶 后端技术

CDN网关超大range计算方法

天翼云开发者社区

CDN

C语言编程—常量

梦笔生花

《好好学习》:如何管理知识?

郭明

JavaScript中eval和with语句如何影响作用域链:探索深度知识

Immerse

2023-05-18:有 n 名工人。 给定两个数组 quality 和 wage , 其中,quality[i] 表示第 i 名工人的工作质量,其最低期望工资为 wage[i] 。 现在我们想雇佣

福大大架构师每日一题

Go 算法 rust

发现你的职业价值观:打造成功职业生涯的关键

Jack

标签系列:标签管理平台的架构与设计

小鲸数据

数据 标签 数据管理 标签体系

中央企业数字化转型专业委员会正式揭牌!

用友BIP

财务管理

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