diff options
author | Stefan Giehl <stefan@piwik.org> | 2017-03-22 01:28:52 +0300 |
---|---|---|
committer | Matthieu Aubry <mattab@users.noreply.github.com> | 2017-03-22 01:28:52 +0300 |
commit | c0534d837e6801e5061a25856468d45c640a2393 (patch) | |
tree | 18a3856d552ce150e1ae666824157fb5611487c0 /plugins | |
parent | 3266a3542d20d1075a4cbcd5adb986bf6b67aefd (diff) |
Improve URI check when showing external pages for Overlays (#11497)
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/Overlay/templates/startOverlaySession.twig | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/plugins/Overlay/templates/startOverlaySession.twig b/plugins/Overlay/templates/startOverlaySession.twig index b1db8ce5b2..995dd78020 100644 --- a/plugins/Overlay/templates/startOverlaySession.twig +++ b/plugins/Overlay/templates/startOverlaySession.twig @@ -8,20 +8,19 @@ } } - function removeUrlPrefix(url) { - return url.replace(/http(s)?:\/\/(www\.)?/i, ""); - } - if (window.location.hash) { var match = false; + var parser = document.createElement('a'); var urlToRedirect = window.location.hash.substr(1); - var urlToRedirectWithoutPrefix = removeUrlPrefix(urlToRedirect); + parser.href = urlToRedirect; + var hostToRedirect = parser.hostname; var knownUrls = {{ knownUrls|raw }}; for (var i = 0; i < knownUrls.length; i++) { - var testUrl = removeUrlPrefix(knownUrls[i]); - if (urlToRedirectWithoutPrefix.substr(0, testUrl.length) == testUrl) { + parser.href = knownUrls[i]; + var testHost = parser.hostname; + if (hostToRedirect == testHost) { match = true; if (navigator.appName == "Microsoft Internet Explorer") { // internet explorer loses the referrer if we use window.location.href=X |