0

我的 html.haml 视图中有以下代码:

= link_to params[:returnurl], class: "btn btn-secondary" do
    = fa_icon 'chevron-left', class: 'm-r-quarter', text: 'Cancel'

当我运行刹车时,我收到以下警告:

Confidence: High
Category: Cross-Site Scripting
Check: LinkToHref
Message: Unsafe parameter value in `link_to` href

即使使用sanitize如下所示,它仍然给我同样的警告:

= link_to sanitize(params[:returnurl]), class: "btn btn-secondary" do
    = fa_icon 'chevron-left', class: 'm-r-quarter', text: 'Cancel'

我很困惑为什么我仍然得到它以及我将如何解决它。谢谢你。

4

1 回答 1

4

使用传入的参数作为链接的值来创建链接通常是不安全的href

想象一个邪恶的代理可以发送一个链接到您的页面,其中returnurl参数指向一个站点,他们可以从您的用户或returnurl可以使用的详细信息中进行网络钓鱼javascript:,然后将用户 cookie 数据传递到他们的服务器并劫持会话。

您将需要重新考虑它的设计,以便不必将returnurl用作参数。理想情况下,您可以从其他一些信息中推断出来。将 url 存储在用户的会话中是一种混淆选项,但这仍然可以被利用。

于 2021-04-28T16:41:23.523 回答