Ruby on rails 3 rails3,参数[:id]加密
我试图防止url黑客攻击,我将id传递给表单所需的url,它工作正常,但如果用户更改url上的值,它会将值发送到错误的表 '事件',:操作=> 'new',:company_id=>company.id}%> 在php世界中,我曾经加密过这个id…我如何在rails3上加密,或者有更好的方法吗 不用说,我对rails有点陌生,对php也有一点了解Ruby on rails 3 rails3,参数[:id]加密,ruby-on-rails-3,url,encryption,Ruby On Rails 3,Url,Encryption,我试图防止url黑客攻击,我将id传递给表单所需的url,它工作正常,但如果用户更改url上的值,它会将值发送到错误的表 '事件',:操作=> 'new',:company_id=>company.id}%> 在php世界中,我曾经加密过这个id…我如何在rails3上加密,或者有更好的方法吗 不用说,我对rails有点陌生,对php也有一点了解 如果您有任何帮助或建议,我们将不胜感激。与其试图加密或隐藏您的公司id值,不如问问自己您到底想阻止用户做什么 如果您只是想阻止用户创建与不存在的公司关
如果您有任何帮助或建议,我们将不胜感激。与其试图加密或隐藏您的公司id值,不如问问自己您到底想阻止用户做什么 如果您只是想阻止用户创建与不存在的公司关联的事件(例如,通过将id设置为非常高的值),那么
validates_presence_of :company
在事件模型上就可以了
如果您只希望用户能够创建与他们工作的公司关联的事件,或者以某种方式访问这些公司,那么您应该创建自定义验证来验证这一点
F与其试图加密或隐藏你的company.id值,不如问问自己你到底想阻止用户做什么 如果您只是想阻止用户创建与不存在的公司关联的事件(例如,通过将id设置为非常高的值),那么
validates_presence_of :company
在事件模型上就可以了
如果您只希望用户能够创建与他们工作的公司关联的事件,或者以某种方式访问这些公司,那么您应该创建自定义验证来验证这一点
尽管这是一个老问题,但这是一个非常有价值的问题。为了防止信息泄露,在URL中隐藏ID是绝对值得的 例如,应用程序有一个健壮的安全模型,允许用户只查看他们有权查看的资源。然而,为什么用户能够查看URL中ID的值,并使用它来推断有多少资源,或者,正如最初的提问者所建议的,开始尝试通过强制浏览来四处闲逛呢 在rails中解决这个问题的方法非常简单。我发现最有效的方法是重写模型中的_参数,通常是通过lib目录中的模块和解密id的应用程序控制器中的before_过滤器
对于演练,请看以下内容:尽管这是一个较老的问题,但这是一个非常有价值的问题。为了防止信息泄露,在URL中隐藏ID是绝对值得的 例如,应用程序有一个健壮的安全模型,允许用户只查看他们有权查看的资源。然而,为什么用户能够查看URL中ID的值,并使用它来推断有多少资源,或者,正如最初的提问者所建议的,开始尝试通过强制浏览来四处闲逛呢 在rails中解决这个问题的方法非常简单。我发现最有效的方法是重写模型中的_参数,通常是通过lib目录中的模块和解密id的应用程序控制器中的before_过滤器
对于演练,请查看以下内容:ago如何创建自定义验证?ago如何创建自定义验证?