ruby-on-rails-3 – 根据Rails 3中的return_to param保护重定向
发布时间:2020-12-17 07:09:26 所属栏目:百科 来源:网络整理
导读:我有一些操作重定向回到我网站中的另一个位置,我从原始页面传递了一个参数. 在我的application_controller.rb中我有这个方法,我在其他控制器中使用它来获取和处理param return_to def redirect_to_return_to_or_default(default) if params[:return_to].pres
我有一些操作重定向回到我网站中的另一个位置,我从原始页面传递了一个参数.
在我的application_controller.rb中我有这个方法,我在其他控制器中使用它来获取和处理param return_to def redirect_to_return_to_or_default(default) if params[:return_to].present? redirect_to params[:return_to] return end redirect_to default 结束 阅读Security Guide我看到这可以用于网络钓鱼攻击,所以我想保护它,可能是通过过滤return_to来重定向到我域中的URL. 我错过了什么吗?有关如何以简单而优雅的方式执行此操作的任何想法? 解决方法
我在ApplicationController中添加了以下作为私有方法
def redirect_to_param(token) unless token.blank? parsed_token = URI.parse(token) res = "" res << parsed_token.path unless parsed_token.query.blank? res << "?" res << parsed_token.query end return res end end 然后,无论我想在哪里重定向到用户提供的参数,我都会说 redirect_to redirect_to_param(params[:redirect]) 会喜欢反馈其他人如何做到这一点. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |