0

我已经阅读了 M. Hartl 关于 ROR 教程的书,并在那里为用户编辑和更新操作,该书用于"@user = User.find(params[:id])"查找用户,然后出于授权目的添加了一个"correct_user"方法来检查 @user 是否为当前用户。令我困惑的是,为什么我不能"@user = current_user"在编辑和更新操作中找到开始使用的用户,这样我就不必担心用户通过 URL 传递其他用户 ID。我正在考虑的这种方法是否会留下任何安全漏洞?我正在使用 Devise,所以我已经有了一个current_user方便的方法。

4

1 回答 1

1

这种方法的一个潜在问题是它可能是具有特殊权限的用户(管理员、版主等)试图编辑允许他们更新的另一个用户。最好坚持从数据库中获取。此外,如果 rails 已经在当前请求周期中获取了用户,则该对象应该被缓存,因此它实际上不应该执行第二个数据库请求。

于 2013-01-01T08:50:10.547 回答