ruby-on-rails – Rails安全性:完全避免大规模分配
发布时间:2020-12-17 01:44:52 所属栏目:百科 来源:网络整理
导读:我倾向于不需要生产代码中的 mass-assignment功能. (在我的测试代码中,我经常使用它,但在这些情况下,我确实想要设置任意列.) 因此,如果在我的生产代码中,我只是避免使用这些形式: Article.new(params[:article]) # or createarticle.attributes = params[:a
我倾向于不需要生产代码中的
mass-assignment功能. (在我的测试代码中,我经常使用它,但在这些情况下,我确实想要设置任意列.)
因此,如果在我的生产代码中,我只是避免使用这些形式: Article.new(params[:article]) # or create article.attributes = params[:article] article.update_attributes(params[:article]) 而是始终手动枚举所有属性,如下所示: Article.new(:title => params[:article][:title],:body => params[:article][:body],...) 我是否从质量分配安全问题中解脱出来(即使不使用attr_accessible / attr_protected)? 编辑:我不只是禁用批量分配的原因是,我希望能够编写Article.create!(::blog_id => @ blog.id,…),其中blog_id是“unsave”属性. 解决方法
是的,使用第二种方法,您可以安全地从用户分配其他属性.
这是一种干燥的写作方式,但是: Article.new(params[:article].slice(:title,:body)) -要么- def article_params params[:article].slice(:title,:body) end Article.new(article_params) # or create article.attributes = article_params article.update_attributes(article_params) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- postgresql – PSQL脚本中的变量,无需创建函数
- clob字段升级到Oracle DB 12.2的问题
- postgresql – SUBSTR不适用于Postgres 8.3中的数
- EasyUI自定义验证-ajax验证用户名是否可用,成功
- cocos2dx3.0rc导出自定义类到lua的方法详细步骤
- ruby-on-rails – Rails / ActiveRecord:保存对
- notifyDataSetChanged()刷新ListView(使用JSONA
- c# – 如何在ASP.Net服务器上运行连续任务?
- 【实例教程】你会用swift创建复杂的加载动画吗
- 解决Binary XML file line #6: : Error inflati
热点阅读