Ruby on rails Rails 5,将参数传递给查询-安全吗?
以前可能有人问过,但我需要检查一下 好了,这是安全的(Rails 5.1)Ruby on rails Rails 5,将参数传递给查询-安全吗?,ruby-on-rails,Ruby On Rails,以前可能有人问过,但我需要检查一下 好了,这是安全的(Rails 5.1) user=user.where(email:params[:user][:email])。首先 如果没有,请告诉我原因?它是安全的,因为您不需要转义或允许参数 Rails将自动转义参数,以保护您免受SQL注入的影响 您不需要担心或使用许可证,因为您没有进行大规模作业 因此,代码将完全按照它所说的做 但是,在调用此操作的人可以查询数据库中的任何用户的意义上,它可能仍然是“不安全的” 通常,只有在调用方经过身份验证且允许
user=user.where(email:params[:user][:email])。首先
如果没有,请告诉我原因?它是安全的,因为您不需要转义或
允许
参数
- Rails将自动转义参数,以保护您免受SQL注入的影响
- 您不需要担心或使用
,因为您没有进行大规模作业许可证
通常,只有在调用方经过身份验证且允许查看数据库中的所有用户时,这才是安全的。否则,任何人都可以快速检查存在哪些用户,甚至可能更糟。是的,危险的是在不过滤参数的情况下使用参数,以及在创建/更新记录时使用参数。这不是你在做的。但这取决于您对该
用户所做的操作。您应该详细说明整个操作。如果params[:user]
为nil
您将得到一个例外,在此行之前有一个nil检查。或者params.fetch(:user,:email)
,如果其中一个为nil