问题标签 [mass-assignment]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1055 浏览

ruby-on-rails - 即使我使用 attr_accessible 也无法批量分配受保护的属性

我正在开发具有 JSON API 的 Rails 3.2.2 应用程序,并且我使用 CLI 客户端插入一些数据。除了作者模型外,它工作正常。当我尝试创建一个新帖子时(帖子 belongs_to :author 和 Author has_many :posts)我收到以下错误:

我对该主题进行了大量研究,但没有找到可行的解决方案:-(

我使用 attr_accessible 来避免 MassAssignent 错误,它适用于所有其他模型,但不适用于“作者”名称属性。

这是作者模型:

实际上,我禁用了 whitelist_attributes 并且它解决了我的问题,但我认为这不是执行此操作的便捷方式(而且可能不是一个好主意)。

我的问题是: 为什么 attr_accessible 在这里不起作用?以及如何在不禁用白名单的情况下解决问题?

谢谢,

瑞文

编辑 :

创建新帖子的方法:

current_author 使用给定的 API 密钥查找作者。

0 投票
2 回答
893 浏览

ruby-on-rails - 如何避免动态角色的批量分配漏洞?

我有用户、帐户和角色模型。Role存储Account和User之间的关系类型。

我留空attr_accessibleRole防止出现批量分配漏洞(否则攻击者可能会更改角色类型——所有者、管理员等……、帐户或用户 ID)。

但是,如果管理员想将订阅者更改为版主怎么办?这将引发批量分配安全异常:

我该如何解决这个问题?一种方法是创建一个单独的模型来表示每个角色(所有者、管理员、版主、订阅者)并使用 STI 类型模式。这让我可以:

乏味!我必须创建 Onwership、Moderatorship、Subscribership 等......,并让它们从 Role 继承。如果我想坚持单一的角色模型,我怎样才能拥有动态角色而不让自己暴露于批量分配漏洞?

额外的问题:我应该使用用户 has_many 角色(用户可以为每种角色类型拥有一条记录)还是 has_one 角色(用户只能拥有一个角色记录,如果他们的角色发生变化必须切换)模式?

0 投票
1 回答
398 浏览

ruby-on-rails - 无法批量分配受保护的属性:整数

我正在关注关于使用 Rails 进行敏捷 Web 开发(第 4 版)的教程,在第 112 页上我开始收到错误消息

2 是 song_id。我没有在模型上使用任何“#attr_accessible”。当我介绍这段代码进行迁移时,这种情况就开始发生了

编辑

重新查看 co 后,我意识到错误在我的控制器中。看起来像这样

def create @cart = current_cart song = Song.find(params[:song_id]) @line_item = @cart.line_items.build @line_item.song = song @line_item = @cart.add_song(song.id)

这是导致问题的线路

@line_item = @cart.add_song(song.id)

0 投票
2 回答
1189 浏览

security - CakePHP 在保存修改数据时会自动处理批量赋值漏洞吗?

编辑:

从 DCoder 收到更多信息后,我在这里搜索的短语是“批量分配漏洞”。也就是说,利用将所有有效字段保存到数据库中的方法的便利性,而不管它们是否存在于初始表单上(使它们容易受到包含比预期字段更多[可能更关键]字段的操纵 POST 数据的攻击)。

然后将这两种常见的响应适当地命名为白名单和黑名单;将用于修改的字段列入白名单,或将不应修改的字段列入黑名单。

然后我的问题是:CakePHP 是否只自动将提交表单中的那些字段列入白名单,或者我(和其他 Cake 粉丝)是否有必要小心我们适当地列入白名单或列入黑名单?


原始问题:

Cake 提供了许多很棒的方法来生成表单并几乎自动处理它们。当我考虑安全性时,我想知道:Cake 是否知道提交的表单中存在哪些字段,或者它是否会简单地接受任何有效字段?如果我没有意义,请采取以下 senario(如果他们能想到更好的表达方式,欢迎有人编辑我的问题以更好地措辞):

假设我允许我的用户编辑他们的个人资料。我在 action 下创建了一个包含用户名、电子邮件和密码字段的表单edit

一位聪明的用户想要进来并将他们的is_admin字段从更改falsetrue,因此他们使用像 firebug 这样的应用程序将自定义帖子数据提交给edit操作,其中包括is_admin设置为的字段true

问题是,Cake 会自己意识到这is_admin不是原始形式,还是我需要小心明确指定给定操作可以修改的唯一字段?有没有更简单的方法?

谢谢!

詹姆士

0 投票
4 回答
19258 浏览

magento - Magento 将产品批量分配到类别

正如标题所说,我需要将产品批量分配到一个类别,并且从管理员那里我一次只能编辑一个产品;我不知道为什么从类别页面的“类别产品”选项卡中批量添加它们不起作用。
这就是为什么我需要另一种快速的方法,比如使用 phpMyAdmin 或类似的方法。

有什么帮助吗?

提前致谢!

0 投票
2 回答
1344 浏览

ruby-on-rails - Mass assignment error with nested fields_for

I know this question has been asked a bunch of times. I already have nested fields_for in my app many times w/o issue so I'm confused as to why its not working this time. I apologize for bringing this topic up again.

I have a user model. A user can have many accounts. To prevent a user from existing w/o at least one account I have a semantic_fields_for nested in the new user form with just one input for setting account role_id.

class User

class Account

users/new

So, to recap: I have the association set up between users and accounts, users model includes accepts_nested_attributes_for, users model includes attr_accessible :accounts_attributes, semantic_fields_for is set up correctly. The error I get is:

Can't mass-assign protected attributes: accounts

The stack trace from the submitted form includes all the correct variables. Account role_id is being set correctly by the nested attribute. The record is simply being rejected for mass-assignment error but it sure seems my attributes are all properly protected.

Using Rails 3.2.3 and Formtastic 2.2.

EDITED

class UsersController

def new

end

users/new

0 投票
4 回答
8331 浏览

ruby-on-rails - 无法批量分配受保护的属性:first_name、last_name、email、password、password_confirmation

我有user使用devise gem的模型,但我没有attr_accessible任何字段我仍然收到错误:

无法批量分配受保护的属性

我的User班级如下

0 投票
1 回答
138 浏览

ruby-on-rails - 为什么批量分配代码不起作用

在我们的 rails 3.1.4 应用程序的 sys_log 模型中定义了一个质量分配:

在 application_controller 中定义了一个方法来保存日志:

但是,批量分配不起作用。这是警告消息:

:new_log 未按定义工作。上面的代码有什么问题?非常感谢。

0 投票
1 回答
395 浏览

ruby-on-rails - Rails父子表单示例防止批量分配

我使用 rails 3.2,我想防止批量分配。我有亲子关系。

在我的 routes.rb 中,子资源没有嵌套在父资源中。现在我有一个链接来创建一个新的孩子new_child_path(@parent.id)。这指示我localhost:3000/child/new?parent_id=1,我最终new采取行动:

我的问题是:如何为_form.html.erb子实体编写我的?我不能使用f.hidden_fieldfor,parent_id因为在我的创建操作中,它会因为批量分配而中断。另一方面,parent_id当我救孩子时,我需要通过了解我的父母。我还没有找到一个很好的工作示例。

0 投票
1 回答
455 浏览

ruby-on-rails-3 - 使用 attr_encrypted (attr_encryptor) gem 时出现 MassAssignmentSecurity 错误

对于我的 rails 3.2.3 应用程序,我使用的是 attr_encryptor,它是 attr_encrypted 的 danpal 的一个分支。我已按照此处给出的说明进行操作,但在尝试创建新Patient记录时收到以下错误消息:

正如说明所说,我在表中添加了encrypted_#{field}encrypted_#{field}_saltencrypted_#{field}_iv列,Patients同时删除了未加密的对应项。

Patient模型看起来像:

我在控制器中的create方法如下所示:Patient

我究竟做错了什么?在此先感谢您的帮助!