0
0
Fork 0

Punycode URI normalization (#2370)

* Fix #2119 - Whenever about to send a HTTP request, normalize the URI

* Add test for IDN request in FetchLinkCardService

* Perform IDN normalization on domains before they are stored in the DB
This commit is contained in:
Eugen 2017-04-25 02:47:31 +02:00 committed by GitHub
parent bb04a9be52
commit 17c591ffba
17 changed files with 546 additions and 26 deletions

View file

@ -64,6 +64,12 @@ class TagManager
domain.nil? || domain.gsub(/[\/]/, '').casecmp(Rails.configuration.x.local_domain).zero?
end
def normalize_domain(domain)
uri = Addressable::URI.new
uri.host = domain
uri.normalize.host
end
def same_acct?(canonical, needle)
return true if canonical.casecmp(needle).zero?
username, domain = needle.split('@')
@ -71,7 +77,7 @@ class TagManager
end
def local_url?(url)
uri = Addressable::URI.parse(url)
uri = Addressable::URI.parse(url).normalize
domain = uri.host + (uri.port ? ":#{uri.port}" : '')
TagManager.instance.local_domain?(domain)
end