gpt4 book ai didi

ruby-on-rails - 为什么对 params 哈希进行切片会对批量分配造成安全问题?

转载 作者:数据小太阳 更新时间:2023-10-29 06:36:53 24 4
gpt4 key购买 nike

通过批量分配防止安全风险的官方方法是使用 attr_accessible .然而,一些程序员认为这不是模型的工作(或者至少不是模型的工作)。在 Controller 中执行此操作的最简单方法是对 params 哈希进行切片:

@user = User.update_attributes(params[:user].slice(:name))

但是文档指出:

Note that using Hash#except or Hash#slice in place of attr_accessible to sanitize attributes won’t provide sufficient protection.

这是为什么呢? 为什么params 的白名单切片不能提供足够的保护?

更新: Rails 4.0 will ship strong-parameters ,一个精细的参数切片,所以我想整个切片事情毕竟还不错。

最佳答案

Controller 中 slice 和 except 的问题可能与模型中的 accept_nested_attributes_for 结合使用。如果使用嵌套属性,则需要在所有位置对参数进行切片,然后在 Controller 中更新它们,这并不总是最简单的任务,尤其是在嵌套很深的情况下。使用 attr_accesible 你就没有这个问题。

关于ruby-on-rails - 为什么对 params 哈希进行切片会对批量分配造成安全问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7483451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com