【发布时间】:2018-01-10 06:39:45
【问题描述】:
直到最近,我一直在使用params.merge 来处理这个问题,但是我收到了一个 XSS 漏洞的警报,需要找到更好的方法来处理区域切换。大多数页面现在完全没问题,但某些 url 会有我需要保留的参数,例如:
movies/123456/seat?ticket_id=1670&locale=en&time_type=2
现在从导航栏处理区域设置切换:
<li><%= link_to "English", locale: "en" %></li>
不幸的是,切换区域设置(EG;到日语)会导致以下结果:
movies/123456/seat?locale=ja
有什么方法可以保留参数(不像以前那样使用 params.merge)还是需要重新处理我的应用程序的大块来解决这个问题?
【问题讨论】:
-
我可能应该说这是我第一次访问这个哈哈!不幸的是,当我切换时,我的网址仍然会丢失任何参数。在给定的示例中,当我将鼠标悬停在选项上时,我可以看到“丢失的参数 url”,所以我肯定有问题。
-
不幸的是,该解决方案还将参数暴露给视图 - 如果我这样做,我可以非常轻松地将 XSS 代码注入我的应用程序。例如,添加
seat: params[:seat]意味着在浏览器中添加/?seat="><svg%2Fonload%3Dconfirm(%2FXSS-IS-HERE%2F)>会出现一个讨厌的小弹出窗口。 -
我会考虑是否可以通过创建更好的路线来解决部分问题。例如:
/tickets/1670/seats.
标签: ruby-on-rails internationalization locale rails-i18n