4

在 rails 中检测外部 url 的最佳方法是什么?

def external?(url)
 return true if url is external
end
4

3 回答 3

3

这里没有验证或任何东西。如果url包含 root_url,这只会返回 true

is_external_url?(url)
  true unless url.include?(root_url)
end
于 2013-09-27T07:39:05.600 回答
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
于 2013-09-27T07:25:33.920 回答
-1

如果您无权访问当前域,请检查当前应用程序中是否可以识别路径

def external?(url)
  !!(Rails.application.routes.recognize_path(URI.parse(url).path) rescue false)
end
于 2013-09-27T07:28:20.510 回答