写点什么

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

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

关注

评论

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

软件测试/测试开发丨利用ChatGPT自动生成测试用例思维导图

测试人

人工智能 软件测试 思维导图 测试开发 ChatGPT

软件测试|Python基础之面向对象(三)

霍格沃兹测试开发学社

软件测试|Pycharm版本控制与分支管理

霍格沃兹测试开发学社

Qt For OpenHarmony

OpenHarmony开发者

OpenHarmony

软件测试|数据库的内连接,左连接,右链接分别是什么

霍格沃兹测试开发学社

软件测试|App自动化之Appium工作原理

霍格沃兹测试开发学社

软件测试|Python内置模块使用(二)

霍格沃兹测试开发学社

如何用华为云ModelArts平台玩转Llama2

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号9月PK榜

【案例教学】华为云API图引擎服务 GES的便捷性—AI帮助快速处理图片小助手

人工智能 云计算 华为云

淘天集团联合爱橙科技开源大模型训练框架Megatron-LLaMA

阿里技术

大模型 AIGC

深入浅出:SPI机制在JDK与Spring Boot中的应用

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号9月PK榜

单元测试|Unittest setup前置初始化和teardown后置操作

霍格沃兹测试开发学社

通过UltraSync减轻主节点负担、提升业务系统性能,AntDB如何做到?

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

阿里云PAI-灵骏大模型训练工具Pai-Megatron-Patch正式开源!

小偏执o

飞书深诺AI系列--如何写出一个好的Prompt

飞书深诺技术团队

软件测试|Python基础之模块导入和使用

霍格沃兹测试开发学社

软件测试|Python内置模块使用(一)

霍格沃兹测试开发学社

可视化的报表系统

风清扬

LED显示屏租赁市场“价格”与“质量”的联系

Dylan

广告 LED显示屏 led显示屏厂家

软件测试|Python基础之面向对象(四)

霍格沃兹测试开发学社

软件测试|Python基础之数据库

霍格沃兹测试开发学社

提高效率的神器!企业级SQL审核与开发工具

NineData

数据库 团队协作 企业 SQL开发 NineData

软件测试|Python基础之包的使用和软件开发目录规范及常用内置模块

霍格沃兹测试开发学社

软件开发中的资料整理与归档,软件产品开发文档合集

金陵老街

项目管理 文档管理软件

软件测试|Python基础之面向对象(二)

霍格沃兹测试开发学社

数据研发“新人”如何快速落地?

阿里技术

数据研发

软件测试|Pycharm运行与调试

霍格沃兹测试开发学社

软件测试|Pycharm搜索替换功能

霍格沃兹测试开发学社

将你的接口数据一目了然,借助 Apifox 的可视化响应功能

Apifox

前端 后端 Apifox API 可视化响应

软件测试|TCP三次握手四次挥手

霍格沃兹测试开发学社

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