gpt4 book ai didi

ruby-on-rails - Rails2 路由问题

转载 作者:太空宇宙 更新时间:2023-11-03 18:23:58 25 4
gpt4 key购买 nike

在我的 Rails 2 应用程序中,我发现了路由中的一个安全漏洞。我正在使用 Rails 2.3.8。这是我的实现:

# routes.rb
map.connect 'sampleview', :controller => 'sample', :action => 'view'

在某些情况下,我的 URL 类似于 http://example.com/sampleview?view_url=http://test.com?s=2&code=15

在这种情况下,我转到了 test.com(这个 test.com 是我在我的应用程序中显示的另一个域)并且页面放置在 iframe 标记中。

问题是如果我构建 url:

http://example.com/sampleview?view_url=http://www.google.com

在我的应用程序中,Google 着陆页被放置在 iframe 标记中。不是很好。

如果网址 http://example.com/sampleview?view_url=http://www.google.com包含 test.com 以外的内容。我必须向用户提出消息。这不是有效的 URL。

如何修改我的 routes.rb 以支持这个或任何其他解决方案。请帮忙。

最佳答案

我不确定您是否可以在 Rails 3.2 中执行此操作,因为路由上的约束选项不存在。我建议您在 Controller 中实现它,最终使用 before_filter。如果您必须在不同的 Controller 之间共享它,您可以将它放在 ApplicationController 中。

更新:添加示例

class ApplicationController
before_filter :check_view_url

private

def check_view_url
if params[:view_url] && params[:view_url] !~ %r{^http://test.com}
raise "Trying to access invalid website"
end
end

end

关于ruby-on-rails - Rails2 路由问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13874919/

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