`
seemoon
  • 浏览: 159113 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

易在开发中忽略的rails安全问题

阅读更多
有些安全问题在rails的开发中会被忽略的,比如rails在创建或者更新一个model的时候,支持一种mass-assignment的赋值方式,比如在controller中,创建一个user model记录

代码1:
@user=User.new(params[:user])
@user.save!


这个场景通常发生在网站注册新用户,假如user有属性用户积分point,注册表单如是写:

<form ..>
<input name='login_name'/>
<input type='password' name='password'/>
<input type ='password' name='c_password'/>
 ...
</form>


如果有恶意用户更改了一下表单提交参数,增加point=10000,那么上述代码1就会存在安全漏洞,因为新注册用户可以获得任意积分!

要消除这个漏洞,做法是将point属性设置为protected

attr_protected :point


注意这里protected不是指外界不能读和写point属性,而是指使mass-assignment对point属性失效,这样代码1就是安全的了。

在更新属性时,必须显式赋值

@user.point=params[:user][:point]
...


其他诸如sql注入等安全问题,可见

http://manuals.rubyonrails.com/read/chapter/47

分享到:
评论

相关推荐

    rails敏捷开发的购物车系统

    在Rails中,可以使用ActiveRecord来操作数据库。创建购物车模型(Cart)和商品模型(Product),定义它们之间的关系,如多对多关系,通过一个关联表记录每个购物车包含的商品及其数量。使用`has_and_belongs_to_many...

    使用Aptana+Rails开发Rails Web应用(中文)

    在开发Web应用时,Ruby on Rails(简称Rails)框架因其高效、简洁的代码风格和强大的社区支持而备受青睐。Aptana是一款强大的集成开发环境(IDE),尤其适用于Rails项目的开发,它提供了丰富的特性来提升开发效率。...

    Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码。

    在阅读这个博客后,读者可以学习到敏捷开发的原则,如迭代开发、持续集成以及如何在Rails框架中实现这些原则。 从给出的文件列表中,我们可以分析出Rails项目的典型结构: 1. **Rakefile**:这是Rails项目中的任务...

    ruby on rails最佳敏捷开发

    在Java世界中,框架如Struts、Tapestry、Hibernate、iBatis等提供了MVC架构的各个层面支持,然而过多的选择往往导致开发者的困惑,选择正确的框架并非易事。与此相比,.NET平台的Visual Studio .NET提供了一站式解决...

    应用Rails进行敏捷Web开发中文第三版

    在Rails中,开发者可以快速构建功能丰富的、数据驱动的Web应用。这本书会详细讲解如何利用Rails的MVC(Model-View-Controller)架构模式来组织代码,其中Model代表数据模型,View负责展示,Controller处理业务逻辑并...

    Web开发敏捷之道-应用Rails进行敏捷Web开发 pdf

    5. **测试驱动开发(TDD)**:作为敏捷开发的一部分,TDD在Rails中占有重要地位。书中详细介绍了Rspec和Capybara等测试工具的使用,以及如何编写单元测试、集成测试和功能测试,确保代码质量。 6. **RESTful API...

    ruby on rails 开发环境包(ruby1.8.7,rails2.2.3)

    在这个开发环境包中,我们拥有Ruby 1.8.7版本和Rails 2.2.3版本,这两个组件构成了一个经典的开发组合。 Ruby 1.8.7是Ruby编程语言的一个早期稳定版本,发布于2010年,提供了许多改进和新特性。在Ruby 1.8.x系列中...

    Ruby on Rails实例开发

    在Rails中,Ruby的元编程能力使得框架能够灵活地自定义和扩展。 Rails的核心理念是DRY(Don't Repeat Yourself),鼓励代码重用,避免重复编写相似的代码。此外,它还提供了大量的内置功能和库,如ActiveRecord用于...

    中文版rails教程

    在Ruby on Rails中,开发者可以快速构建功能丰富的动态网站,因为它提供了大量的内置功能和库,如数据库连接、ORM(对象关系映射)系统ActiveRecord、模板引擎ActionView以及路由系统ActionController等。...

    web开发之rails最新调试通过购物车代码

    5. **会话(Session)**:Rails中的会话管理允许在多个请求之间保持状态,这对于购物车尤为重要,因为用户可能需要在不同时间查看或修改购物车。 6. **数据库迁移(Database Migrations)**:Rails提供了方便的工具...

    Web开发敏捷之道应用Rails进行敏捷Web开发(第3版)

    资源名称:Web开发敏捷之道 应用Rails进行敏捷Web开发(第3版)内容简介:全书主要分为两大部分。在“构建应用程序”部分中,读者将看到一个完整的“在线购书网站”示例。在随后的“Rails框架”部分中,作者深入介绍...

    Rails的中文乱码问题

    标题中的“Rails的中文乱码问题”涉及到的是在使用Ruby on Rails框架开发Web应用时,遇到的中文字符编码不正确的问题。Rails是一个基于Ruby语言的开源Web开发框架,它遵循MVC(Model-View-Controller)架构模式。在...

    基于java的开发源码-Rails3消息队列系统 Sidekiq.zip

    基于java的开发源码-Rails3消息队列系统 Sidekiq.zip 基于java的开发源码-Rails3消息队列系统 Sidekiq.zip 基于java的开发源码-Rails3消息队列系统 Sidekiq.zip 基于java的开发源码-Rails3消息队列系统 Sidekiq.zip ...

    Web开发敏捷之道-应用Rails进行敏捷Web开发(第3版).pdf

    在《Web开发敏捷之道:应用Rails进行敏捷Web开发(第3版)》中,你将可以…… ·跟随一个完整的教程,亲手编写一个基于web的在线商店; ·了解Rails如何消除烦人的配置与琐事; ·学会如何开发国际化的应用程序; ·...

    在Rails中使用SSL

    在Rails中使用SSL(安全套接层)是构建Web应用时确保数据传输安全的重要步骤。Rails框架支持在应用程序中轻松集成SSL,以保护用户敏感信息,如登录凭据和支付详情。以下是一些关于在Rails中实施SSL的关键知识点: 1...

    使用 Ruby on Rails 和 Eclipse 开发 iPhone 应用程序教程(含图例)

    在开发环境中,教程推荐使用集成开发环境 (IDE) Eclipse,搭配 Aptana 插件来支持 Ruby on Rails 和 iPhone 开发。Aptana 提供了对 Ruby 和 Rails 的语法高亮、快捷键以及执行环境的支持。iPhone 插件则提供了预览 ...

    ruby on rails社区网站开发源码

    在“ruby on rails社区网站开发源码”中,我们可以学习到如何利用Rails构建一个互动性强、功能丰富的社区网站。以下是一些关键知识点: 1. **安装与环境设置**:首先,你需要安装Ruby和Rails。这通常涉及设置Ruby...

    ruby on rails(开发文档)

    在Rails的开发文档中,你可以找到以下关键知识点: 1. **Ruby基础**:首先,你需要对Ruby语言有一定的理解,包括其语法、数据类型、控制结构、方法等。Rails是建立在Ruby之上的,因此深入理解Ruby是学习Rails的基础...

Global site tag (gtag.js) - Google Analytics