我正在使用 Ruby on Rails 4.1.1,我正在考虑接受直接传递给url_for
方法的参数(通过 URL 查询字符串),这种方式:
# URL in the browser
http://www.myapp.com?redirect_to[controller]=users&redirect_to[action]=show&redirect_to[id]=1
# Controller
...
redirect_to url_for(params[:redirect_to].merge(:only_path => true))
采用上述方法,用户可以在执行操作后被重定向。但是,我认为人们可以随意输入params
可能导致安全问题的...
接受用于填充url_for
方法的 URL 参数是否安全?什么是陷阱?在最坏的情况下会发生什么?
通过params
在对我的应用程序的请求期间记录,我注意到 Rails 添加了always :controller
和action
参数。也许确认url_for
可以以上述方式使用,因为它在内部受到保护并且像 Rails 一样工作。