如何通过检查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'