有些安全问题在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
分享到:
- 2008-06-11 15:00
- 浏览 1060
- 评论(0)
- 论坛回复 / 浏览 (0 / 2019)
- 查看更多
相关推荐
本资源是参照rails敏捷开发第四版书中的例子,rails的版本是rails3.2.6
应用Rails进行REST开发.pdf Restful Rails Development
ruby on rails社区网站开发源码
使用Aptana+Rails开发Rails Web应用 有Aptana的安装配置等等,中文
资源名称:Web开发敏捷之道 应用Rails进行敏捷Web开发(第3版)内容简介:全书主要分为两大部分。在“构建应用程序”部分中,读者将看到一个完整的“在线购书网站”示例。在随后的“Rails框架”部分中,作者深入介绍...
基于java的开发源码-Rails3消息队列系统 Sidekiq.zip 基于java的开发源码-Rails3消息队列系统 Sidekiq.zip 基于java的开发源码-Rails3消息队列系统 Sidekiq.zip 基于java的开发源码-Rails3消息队列系统 Sidekiq.zip ...
在《Web开发敏捷之道:应用Rails进行敏捷Web开发(第3版)》中,你将可以…… ·跟随一个完整的教程,亲手编写一个基于web的在线商店; ·了解Rails如何消除烦人的配置与琐事; ·学会如何开发国际化的应用程序; ·...
rails 经典书籍之一, 描述怎样敏捷的运用rails进行开发。
本书详细讲解了rails进行网站开发,书中例子经典丰富,适合rails初级用户使用,pdf版本,带有目录,方便定位查找
在目前的主流web开发技术中,基于ruby语言的rails框架是做网站开发速度最快的工具。它可以达到j2ee框架开发速度的5~10倍,并且代码量也非常少。另外由于代码量的大幅度减少,整个网站维护的工作量也大大降低。 ...
ruby on rails 开发环境包(ruby1.8.7,rails2.2.3)
请结合我上次上传的“Ruby中文文档”,学习了解之后,再来实际操作,理解“Ruby On Rails”框架开发web程序,这个是很不错的实例,能够在短期内实现Rails的web开发。
Web开发敏捷之道-应用Rails进行敏捷Web开发 Web开发敏捷之道-应用Rails进行敏捷Web开发-2版 Web开发敏捷之道-应用Rails进行敏捷Web开发-3版
Ruby on Rails实例开发.
《应用Rails进行敏捷Web开发》中文第三版,找了很久才找到,介绍的是rails2.2.2
全书主要内容分为两大...尤为值得一提的是本部分的后几章:作者先后介绍了Web 2.0、Web Service等流行技术在Rails中的支持,然后又凭借丰富的实践经验介绍了Rails在安全性、伸缩性、部署等方面的常见问题和解决方案。
本书从Ruby和Rails的历史讲起,以在Rails框架上克隆故事共享网站digg.com为例,详细讲述了Ruby和Rails的安装过程、框架组成部分、与AJAX和Web 2.0技术结合、安全措施、高级话题和扩展功能等。本书带领读者运用最新...
学习rails框架开发的必备书籍。。。。。。。。。。。。。