Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/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 对于CVE-2021-22885,是否仅对阵列内容有危险?_Ruby On Rails_Security_Parameters - Fatal编程技术网

Ruby on rails 对于CVE-2021-22885,是否仅对阵列内容有危险?

Ruby on rails 对于CVE-2021-22885,是否仅对阵列内容有危险?,ruby-on-rails,security,parameters,Ruby On Rails,Security,Parameters,如果我理解正确,例如,如果我们有这样的代码,可能会很危险: 重定向到(参数[:重定向url]) 其中params[:redirect\u url]是['my','secret'] 因为在redirect\u to下面,使用了url\u for,并且生成了路径my\u secret\u path,该路径看起来像是一条会泄露机密信息的路径,我们不想泄露机密信息 如果我的上述理解有误,请纠正 现在,我的问题是,我们只担心redirect_to方法的参数是数组的情况吗 如果参数是一个包含用户输入的散列,

如果我理解正确,例如,如果我们有这样的代码,可能会很危险:

重定向到(参数[:重定向url])

其中
params[:redirect\u url]
['my','secret']

因为在
redirect\u to
下面,使用了
url\u for
,并且生成了路径
my\u secret\u path
,该路径看起来像是一条会泄露机密信息的路径,我们不想泄露机密信息

如果我的上述理解有误,请纠正

现在,我的问题是,我们只担心redirect_to方法的参数是数组的情况吗

如果参数是一个包含用户输入的散列,这还会很危险吗

比如说,

redirect_to(new_params)
where
new_params
=
post_params.merge({controller:post_params[:controller],action:post_params[:action]})

在这种情况下,用户可以将
post_参数[:controller]
设置为
my
,将
post_参数[:action]
设置为
secret


另外,如果我们有
重定向到(params)
,这也会很危险吗?
params
将包含操作和控制器键值对,用户可以设置它(通过调用不同的URL?),因此他们可以将其设置为
my
secret

散列给出大致相同的漏洞。请注意,当请求通过路由中间件传递时,rails将覆盖
params[:action]
params[:controller]
,因此
重定向到(params.slice(:action,:controller))
将只重定向回同一控制器/操作。