如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

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

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

关注

评论

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

写给20几岁的程序员

shellc

财富 35岁

URL重定向及跳转漏洞

喀拉峻

网络安全

Go实现并发聚合,批量提交功能

人生如梦

Go 并发 请求聚合

毕业总结

皓月

「架构实战营」

39 个 Java 集合框架面试题

逆锋起笔

java面试 死磕 Java 基础 3月月更 Java集合框架

科技创新力强,旺链科技创始人刘涛荣登G60科创走廊创业榜单

旺链科技

区块链 产业区块链 创新创业

优雅的DO,VO,DTO转换工具MapStruct

卢永德

3月月更

基于云效代码管理的源码漏洞检测是怎样的?

阿里云云效

阿里云 代码 代码管理 源代码 Codeup

AHPA:开启 Kubernetes 弹性预测之门

阿里巴巴云原生

阿里云 Kubernetes 云原生 AHPA 弹性预测

Linux中如何使用Htop监控工具?【网络安全】

H

Linux 网络安全

Python 获取字典中的第一个键

AlwaysBeta

Python 程序员 编程语言 字典

用 vite 2 平滑升级 vue 2 + webpack 项目实战

CRMEB

产品帮助中心的制作方法及工具推荐

小炮

Java 8 Stream 从入门到进阶——像SQL一样玩转集合

Geek_rze78a

Java JAVA stream

【51单片机】点亮LED灯(四种形式)

謓泽

3月月更

恒源云(GpuShare)_医学图像分割:MT-UNet

恒源云

深度学习 机器翻译 transform

DNA to Face,会是寻人缉凶的一颗“银弹”吗?

脑极体

程序员硬核测评:全方位测评 GaussDB(for Redis) 和开源 Redis

华为云数据库小助手

性能分析 GaussDB GaussDB ( for Redis ) 华为云数据库 开源Redis

华为SmartCare和AUTIN品牌升级:助力运营商走出5G发展迷宫

白洞计划

知识管理的成功案例大赏

小炮

重点操作之上线、恢复、部署 - 大屏云极简使用手册

shulinwu

信息安全无小事!教你如何做日志脱敏

卢永德

尚硅谷Maven新版视频教程发布

@零度

maven

java高级用法之:调用本地方法的利器JNA

程序那些事

Java nio 程序那些事 3月月更

VuePress 博客优化之增加 Valine 评论功能

冴羽

JavaScript 前端 vuepress 博客搭建 Alogia

毕业总结

whoami

架构训练营

翻译 | 解读首部 Kubernetes 纪录片

RadonDB

开源 Kubernetes RadonDB

电商秒杀系统架构设计文档

皓月

「架构实战营」

实用机器学习笔记二十四:模型调参

打工人!

学习笔记 机器学习算法 3月月更 模型调参

Go学习笔记——条件判断if

为自己带盐

Go 学习笔记 3月月更

操作系统面试总结

yuexin_tech

操作系统

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