Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 rails3,参数[:id]加密_Ruby On Rails 3_Url_Encryption - Fatal编程技术网

Ruby on rails 3 rails3,参数[:id]加密

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值,不如问问自己您到底想阻止用户做什么 如果您只是想阻止用户创建与不存在的公司关

我试图防止url黑客攻击,我将id传递给表单所需的url,它工作正常,但如果用户更改url上的值,它会将值发送到错误的表

'事件',:操作=> 'new',:company_id=>company.id}%>

在php世界中,我曾经加密过这个id…我如何在rails3上加密,或者有更好的方法吗

不用说,我对rails有点陌生,对php也有一点了解
如果您有任何帮助或建议,我们将不胜感激。

与其试图加密或隐藏您的公司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如何创建自定义验证?