ruby-on-rails - Ruby on Rails - 何时使用 params.permit!以及如何更换它

标签 ruby-on-rails ruby security actioncontroller brakeman

我正在处理遗留 Rails 应用程序, Controller 有许多 params.permit! 实例。在其上运行 Brakeman 扫描时,params.permit! 将应用程序打开到批量分配漏洞。

我的问题是 - 绕过此 params.permit 的最有效方法是什么!漏洞并替换它?

最佳答案

params.permit!所有属性列入白名单,导致批量赋值漏洞。解决此问题的最佳方法是仅将必要属性列入白名单

params.permit(:attr1,:attr2..)

更好的是,使用 requirepermit

Allows you to choose which attributes should be whitelisted for mass updating and thus prevent accidentally exposing that which shouldn't be exposed. Provides two methods for this purpose: require and permit. The former is used to mark parameters as required. The latter is used to set the parameter as permitted and limit which attributes should be allowed for mass updating.

params.require(:key).permit(:attr1, :attr2..)

关于ruby-on-rails - Ruby on Rails - 何时使用 params.permit!以及如何更换它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52374655/

相关文章:

ruby-on-rails - Rails - 在 if 语句中将 1 映射为 true

ruby-on-rails - Heroku 可靠吗?

ruby 纤维 : resuming transferred fibers

ruby - 如何将 lambda 传递给 Hash.each?

ruby - 如何以执行 ruby​​.rb 并在 View 中可见结果的方式通过表单嵌入 ruby​​.rb 文件

ruby-on-rails - Cucumber BDD for RAILS/ActiveRecord - 通过填充数据库层来加速慢速测试?

ruby-on-rails - 我的非模型/非 Controller 代码应该放在哪里?

java - 我是否需要使用 Google 帐户身份验证而不是 Spring 身份验证来避免 Firesheep cookie 嗅探攻击?

c# - 开发安全应用程序的最佳方法。与.net

android:allowbackup ="false"不工作