如何通过检查URI是否引用给定的域名来validationURI?

我正在运行Ruby on Rails 4.1.1,我想通过检查URI是否在给定的域名内来validationURI。 也就是说, uri字符串可以作为params发送到我的控制器,我想检查uri “引用”我的应用程序域名www.myapp.com 。 当然, uri应该是有效的URI引用 。

 # Invalid URIs www.website.com http://www.website.com http://www.website.com/ https://www.website.com/ ftp://www.website.com/ ftps://www.website.com/ http://www.website.com/some/path # Valid URIs www.myapp.com http://www.myapp.com http://www.myapp.com/ https://www.myapp.com/ ftp://www.myapp.com/ ftps://www.myapp.com/ http://www.myapp.com/some/path 

我怎样才能做到这一点(也许只使用Ruby on Rails)?

注意:我正在validationURI,以便允许用户设置自定义重定向,并且我知道漏洞 。 我计划在application_controller.rb声明的方法中运行validation。

 require 'uri' uri = URI.parse 'http://www.website.com/some/path' isOK = case uri.host when 'www.website.com' then true else false end #⇒ true 

希望能帮助到你。

目前可寻址是我使用URI的首选:

 require 'addressable/uri' Addressable::URI.parse('http://www.myapp.com/some/path').host == 'www.myapp.com'