我沒辦法在這邊正常的發布有表單HTML tag的文章,請連結至:
http://blog.pixnet.net/zusocfc/post/3220943觀看完整文章!
Rails中有個安全性漏洞,請參考
* http://manuals.rubyonrails.com/read/chapter/47
* http://www.iteye.com/topic/58686
假設我們有個users table,表格欄位如下:
* username # 很明顯就是帳號
* password # 這就是密碼
* role # 權限名稱
而我們提供給使用者註冊的頁面只會有username跟password欄位
然後你的後端如果是這樣:
User.create(params[:user])
哦.. 這就真的好玩了..
使用者在註冊時直接提權..
那這要怎樣處理呢?
我們可以在
app/model/user.rb
內新增這行:
attr_protected :role
這樣一來,該欄位就會確定被忽略掉而不會被新增..
不過你得做一下這道手續:
user = User.new(params[:user])
user.role = sanitize_properly(params[:user][:role])
===== 分 - 隔 - 線 =====
另外,我們可以使用
attr_accessible :username, :password
這有點類似白名單的方式,可以過濾掉沒出現的欄位...
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-1447561-1";
urchinTracker();
</script>
分享到:
相关推荐
您可以将它们视为attr_protected和attr_accessible的控制器类似物。 安装 Rails的2.3.x版本 gem install param_protected -v "~> 1.0.0" Rails的3.0.x中 gem "param_protected" , "~> 2.0.0" 感谢提供了Rails 3...
gem的最新版本仅适用于Rails 3.2.x 这是一个ActiveModel插件,可以在attr_accessible类方法中定义块。 不支持attr_protected 。 由于块的原因,可以为实例定义访问权限,而不仅仅是为类级别定义。 仍然可以定义类...
可访问强参数的属性 自动将 Rails 3 attr_accessible 转换为 Rails 4 强参数安装 $ gem install attr_accessible2strong_params用法 $ aa2sp [filename OR dirname OR .]运行aa2sp . 在您的 rails 根文件夹中,程序...
受保护的属性续 这是Rails 5+的社区的继续版本。... 此gem添加了attr_accessible和attr_protected类方法来声明属性的白色或黑色列表。 安装 将此行添加到您的应用程序的Gemfile : gem 'protected_attributes_continu
MongoMapper是一个非常流行的Ruby库,它为Ruby on Rails应用提供了与MongoDB集成的能力。本教程将详细讲解如何在Rails项目中配置和使用MongoMapper连接MongoDB。 首先,你需要确保已经安装了MongoDB数据库。在开始...
ActiveRecord :: Base attr_accessible :description , :title attr_accessible :image has_attached_file :imageend 为了处理附件,我正在使用 Paperclip。 我已经从下载并安装了 Plupload 在我连接了一些 ...
外部STI 通过关联使用继承扩展 STI。用法宝石档案: gem 'ext_sti', :git => 'git://github.com/fuCtor/ext_sti.git'楷模: ...end endclass ForumPost < Post attr_accessible :name ati_type :forumendclass Blo
lazy_columns lazy_columns是一个Rails插件,可让您指定要在Active Record模型中延迟加载的列。 默认情况下,Active Records加载每个模型实例中的所有列。... attr_accessible :comments , :title en
attr_accessible :dads_pesel , :mums_pesel # this will give the access to methods: # dads_pesel_personal_data, mums_pesel_personal_data pesel_attr :dads_pesel , :mums_pesel # keep in mind that ...
PiggybakVariant Gem(引擎) Piggybak 的高级变体支持。... 您可能还需要在模型中添加适当的 attr_accessible 设置,具体取决于您的属性可访问性设置。 在管理中,为每个选项定义选项配置和选项值,然后为您的可
attr_accessible :first_name , :last_name , :job_title , :member_since end 创建演示者: # app/presenters/user_presenter.rb class UserPresenter < ShortCircuit :: Presenter def first_name @user
Ruby on Rails 是一款流行的Web开发框架,它与PostgreSQL数据库紧密集成。自Rails 4.0版本开始,框架正式支持PostgreSQL的数组类型,这极大地增强了数据存储的灵活性。PostgreSQL的数组类型允许在一个单一的数据库列...
restpack_serializer 模型序列化、分页、旁加载和过滤restpack_serializer 允许您为应用程序快速提供一组 RESTful 端点。 它是新兴的标准的实现。... ActiveRecord :: Base attr_accessible :title ,