gpt4 book ai didi

ruby-on-rails-3 - 基于 Rails 3 中的 return_to 参数保护重定向

转载 作者:行者123 更新时间:2023-12-01 04:06:49 27 4
gpt4 key购买 nike

我有一些操作重定向回或重定向到我的网站中的另一个位置,我通过原始页面的参数传递了这些位置。

在我的 application_controller.rb我有这种方法,我在其他 Controller 中使用它来获取和处理参数 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 中添加了以下内容作为私有(private)方法

  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])

也希望得到其他人如何做到这一点的反馈。

关于ruby-on-rails-3 - 基于 Rails 3 中的 return_to 参数保护重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8773581/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com