ruby-on-rails - 对于 CVE-2021-22885,是否只对数组内容有危险?
问题描述
如果我理解正确,对于CVE-2021-22885,如果我们的代码如下所示,则可能很危险:
redirect_to(params[:redirect_url])
params[:redirect_url]
在哪里['my', 'secret']
因为在下面使用了 , 并redirect_to
生成了路径,该路径看起来像一条会泄露机密信息的路径,而我们不想泄露机密信息。url_for
my_secret_path
如果我的上述理解有误,请纠正我。
现在,我的问题是,我们是否只担心 redirect_to 方法的参数是数组的情况?
如果参数是包含用户输入的哈希,它仍然是危险的吗?
例如,
redirect_to(new_params)
其中new_params
=post_params.merge({ controller: post_params[:controller], action: post_params[:action]})
在这种情况下,用户可以设置post_params[:controller]
tomy
和post_params[:action]
to secret
。
另外,如果我们有redirect_to(params)
,那也会很危险吗?将params
包含操作和控制器键值对,用户可以设置它(通过调用不同的 URL?),所以他们可以将它设置为my
and secret
。
解决方案
推荐阅读
- javascript - Clever Programmer 构建的 NodeJS 和 socket.io Zoom Clone 如何添加用户名?
- ssh - AWS Lightsail - 主机文件拒绝浏览器 SSH 访问
- python - 如何在 Python 中解析一个 lisp 可读的属性列表文件
- python - Psycopg2-wheel 无法为 MacOS 构建
- python - SQLAlchemy:关系将复制与关系冲突的列
- wordpress - Wordpress - 如何使用 Elementor 创建我自己的表单自定义小部件?
- c - 链接器是否生成带有 no-pie 标志的最终虚拟内存地址?
- luajit - Luajit - 为什么限制标准库时会出现性能下降
- html - 如何打印出由 Latex 使用 Bootstrap 编写的非常简单的数学公式?
- java - 如何使用 Java for 循环创建 JSON 对象的 JSON 数组?