如何通过检查 URI 是否引用给定域名来验证 URI?
How to validate URIs by checking if those refer to a given domain name?
我正在 运行ning Ruby Rails 4.1.1,我想通过检查 URI 是否在给定域名中来验证 URI。也就是说,uri
字符串可以作为 params
发送到我的控制器,我想检查 uri
"refers" 是否发送到我的应用程序域名 www.myapp.com
.当然,uri
应该是有效的 URI reference.
# 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
我怎样才能做到这一点(也许只需在 Rails 上使用 Ruby)?
注意:我正在验证 URI 以允许用户设置自定义重定向并且我知道 vulnerabilities。我计划 运行 以我的 application_controller.rb
.
中所述的方法进行验证
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
希望对您有所帮助。
目前 Addressable 是我使用 URI 的首选:
require 'addressable/uri'
Addressable::URI.parse('http://www.myapp.com/some/path').host == 'www.myapp.com'
我正在 运行ning Ruby Rails 4.1.1,我想通过检查 URI 是否在给定域名中来验证 URI。也就是说,uri
字符串可以作为 params
发送到我的控制器,我想检查 uri
"refers" 是否发送到我的应用程序域名 www.myapp.com
.当然,uri
应该是有效的 URI reference.
# 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
我怎样才能做到这一点(也许只需在 Rails 上使用 Ruby)?
注意:我正在验证 URI 以允许用户设置自定义重定向并且我知道 vulnerabilities。我计划 运行 以我的 application_controller.rb
.
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
希望对您有所帮助。
目前 Addressable 是我使用 URI 的首选:
require 'addressable/uri'
Addressable::URI.parse('http://www.myapp.com/some/path').host == 'www.myapp.com'