有人可以向我解释为什么这是一个安全问题吗?
= link_to new_locale.to_s, params.slice(:id, :reader_id, :screen_type).merge(locale: new_locale)
我正在尝试向我的项目添加一个简单的部分,以便能够在语言之间切换。 我真的不希望这个部分必须与每个控制器交互或将用户切换到不同的页面或必须知道所有可能的有效参数。
我快速浏览了源代码,我怀疑以下原因之一触发了它:
- 您正在调用
.to_s
以link_to
第一个参数,从而导致传入html_safe
字符串。 - 用户输入直接交给
link_to
,我认为这将是误报。
您可以通过自己查看 Brakeman 中 link_to
XSS 测试的源代码来进一步深入研究。