检测rails中外部URL的最佳方法是什么?
def external?(url)
return true if url is external
end
答案 0 :(得分:3)
这里或其他任何地方都没有验证。如果url
包含root_url
is_external_url?(url)
true unless url.include?(root_url)
end
答案 1 :(得分:0)
def get_host_name(url)
url = "http://#{url}" if URI.parse(url).scheme.nil?
URI.parse(url).host.downcase
end
def is_external_url?(url)
host = get_host_name(url)
host != 'www.mydomain.com'
end
答案 2 :(得分:-1)
如果您无权访问当前域,请检查当前应用程序中是否识别该路径
def external?(url)
!!(Rails.application.routes.recognize_path(URI.parse(url).path) rescue false)
end