QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

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

关注

评论

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

python函数练习题,万字长文

程序媛可鸥

Python 程序员 面试

Python 实现二叉树前序,中序,后序,零基础也能看得懂

程序媛可鸥

Python 程序员 面试

Python 开发编码规范,阿里面试100%会问到的JVM

程序媛可鸥

Python 程序员 面试

Python中return和yield的区别,2021年Python笔试题总结

程序媛可鸥

Python 程序员 面试

nginx5种负载策略的设置方法,看完直接怼产品经理

程序媛可鸥

Python 程序员 面试

2022年中国在线音乐市场年度综合分析

易观分析

2022年中小企业数据安全如何保障?对比华为云与其他云计算大厂,15分钟的字节跳动视频面试

程序媛可鸥

Python 程序员 面试

Kafka 常用命令总结,高级Python面试题

程序媛可鸥

Python 程序员 面试

python中把列表中的字符串转成整型的3种方法,收割快手,字节,百度,美团的Offer之旅

程序媛可鸥

Python 程序员 面试

Python中用tuple作为key,写的太详细了

程序媛可鸥

Python 程序员 面试

阿里巴巴副总裁陈丽娟:我对阿里云产品生态的思考 | 云原生加速器观点

阿里巴巴云原生

Python“鉴黄”小程序,我离职后面试收割小米等大厂offer

程序媛可鸥

Python 程序员 面试

WorkPlus移动平台 | 如何建设“智慧校园”新样态?

BeeWorks

大疆被制裁,请马上卸载postman!

Liam

程序员 Postman 开发工具 API swagger

Python GUI编程:关于 tkinter 怎么才能写出更好看的界面,华为架构师深入讲解Python开发

程序媛可鸥

程序员

Python代码报错看不懂?记住这些报错提示单词轻松解决bug,2021年Python开发陷入饱和,

程序媛可鸥

Python 程序员 面试

python3的变量作用域规则和nonlocal关键字,Python面试及答案

程序媛可鸥

Python 程序员 面试

移动平台WorkPlus助力医院智慧信息化建设

BeeWorks

jQuery入门到精通学习教程,收藏我这篇就够了,Alibaba高并发业务实战文档

程序媛可鸥

Python 程序员 面试

龙蜥开发者说:从入坑到入门 | 第 2 期

OpenAnolis小助手

开源 龙蜥社区 开发者说 技术的力量

python 同时迭代多个序列,还没吃透内存缓存LruCache实现原理的看这篇文章

程序媛可鸥

Python 程序员 面试

python3 基础小练习: 判断闰年,2021最新Python算法相关面试大

程序媛可鸥

Python 程序员 面试

Flutter 图片库高燃新登场

阿里巴巴终端技术

flutter

python DataFrame数据合并 merge()、concat()方法,拿下我人生中第7个Offer

程序媛可鸥

Python 程序员 面试

从硬件到软件,教你从零搭建智慧农业大脑

华为云开发者联盟

物联网 智慧农业 华为云IoT 小熊开发板 STM32L431芯片

社区活动 | Apache Pulsar SIG(特别兴趣小组开放)!欢迎大家加入

Apache Pulsar

开源 架构 云原生 Apache Pulsar pulsar 社区

使用MASA.Blazor写一个标准的查询表格页

MASA技术团队

浅谈NIO和Epoll实现原理

Linux服务器开发

网络编程 epoll Linux服务器开发 Linux后台开发 网络io

飞桨助力动车3C车载智能识别,为动车组运行保驾护航

百度大脑

2021年【大学生Python学习】社区&&小博主,2021最新大厂高频微服务面试总结

程序媛可鸥

Python 程序员 面试

向工程腐化开炮|动态链接库so治理

阿里巴巴终端技术

android 动态链接库

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