diff options
author | Maurício Meneghini Fauth <mauricio@fauth.dev> | 2022-08-06 21:02:49 +0300 |
---|---|---|
committer | Maurício Meneghini Fauth <mauricio@fauth.dev> | 2022-08-06 21:02:49 +0300 |
commit | 75cf045fa3ec32d2a82b086d5516315b8fc38afe (patch) | |
tree | 1c54d81edc312230d357b01c78d85a64d43a6a47 /libraries | |
parent | 31511720730dba86476f7fff3fb2c3ef443c17f7 (diff) |
Extract url.php entry point into a route
Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
Diffstat (limited to 'libraries')
-rw-r--r-- | libraries/classes/Common.php | 6 | ||||
-rw-r--r-- | libraries/classes/Controllers/ChangeLogController.php | 20 | ||||
-rw-r--r-- | libraries/classes/Core.php | 4 | ||||
-rw-r--r-- | libraries/classes/Html/Generator.php | 6 | ||||
-rw-r--r-- | libraries/classes/Sanitize.php | 2 |
5 files changed, 23 insertions, 15 deletions
diff --git a/libraries/classes/Common.php b/libraries/classes/Common.php index 496e166a6c..706074dc33 100644 --- a/libraries/classes/Common.php +++ b/libraries/classes/Common.php @@ -95,7 +95,7 @@ final class Common $request = self::getRequest(); $route = $request->getRoute(); - if ($route === '/import-status') { + if ($route === '/import-status' || $route === '/url') { $GLOBALS['isMinimumCommon'] = true; } @@ -209,6 +209,10 @@ final class Common $GLOBALS['containerBuilder']->set('theme_manager', ThemeManager::getInstance()); Tracker::enable(); + if ($route === '/url') { + UrlRedirector::redirect(); + } + return; } diff --git a/libraries/classes/Controllers/ChangeLogController.php b/libraries/classes/Controllers/ChangeLogController.php index b1b96813df..d1f5b667c5 100644 --- a/libraries/classes/Controllers/ChangeLogController.php +++ b/libraries/classes/Controllers/ChangeLogController.php @@ -8,6 +8,7 @@ declare(strict_types=1); namespace PhpMyAdmin\Controllers; use PhpMyAdmin\Http\ServerRequest; +use PhpMyAdmin\Url; use function __; use function array_keys; @@ -64,30 +65,34 @@ class ChangeLogController extends AbstractController $faq_url = 'https://docs.phpmyadmin.net/en/latest/faq.html'; $replaces = [ - '@(https?://[./a-zA-Z0-9.-_-]*[/a-zA-Z0-9_])@' => '<a href="url.php?url=\\1">\\1</a>', + '@(https?://[./a-zA-Z0-9.-_-]*[/a-zA-Z0-9_])@' => '<a href="' + . Url::getFromRoute('/url') . '&url=\\1">\\1</a>', // mail address '/([0-9]{4}-[0-9]{2}-[0-9]{2}) (.+[^ ]) +<(.*@.*)>/i' => '\\1 <a href="mailto:\\3">\\2</a>', // FAQ entries - '/FAQ ([0-9]+)\.([0-9a-z]+)/i' => '<a href="url.php?url=' . $faq_url . '#faq\\1-\\2">FAQ \\1.\\2</a>', + '/FAQ ([0-9]+)\.([0-9a-z]+)/i' => '<a href="' + . Url::getFromRoute('/url') . '&url=' . $faq_url . '#faq\\1-\\2">FAQ \\1.\\2</a>', // GitHub issues - '/issue\s*#?([0-9]{4,5}) /i' => '<a href="url.php?url=' . $github_url . 'issues/\\1">issue #\\1</a> ', + '/issue\s*#?([0-9]{4,5}) /i' => '<a href="' + . Url::getFromRoute('/url') . '&url=' . $github_url . 'issues/\\1">issue #\\1</a> ', // CVE/CAN entries - '/((CAN|CVE)-[0-9]+-[0-9]+)/' => '<a href="url.php?url=' + '/((CAN|CVE)-[0-9]+-[0-9]+)/' => '<a href="' . Url::getFromRoute('/url') . '&url=' . 'https://cve.mitre.org/cgi-bin/cvename.cgi?name=\\1">\\1</a>', // PMASAentries - '/(PMASA-[0-9]+-[0-9]+)/' => '<a href="url.php?url=https://www.phpmyadmin.net/security/\\1/">\\1</a>', + '/(PMASA-[0-9]+-[0-9]+)/' => '<a href="' + . Url::getFromRoute('/url') . '&url=https://www.phpmyadmin.net/security/\\1/">\\1</a>', // Highlight releases (with links) '/([0-9]+)\.([0-9]+)\.([0-9]+)\.0 (\([0-9-]+\))/' => '<a id="\\1_\\2_\\3"></a>' - . '<a href="url.php?url=' . $github_url . 'commits/RELEASE_\\1_\\2_\\3">' + . '<a href="' . Url::getFromRoute('/url') . '&url=' . $github_url . 'commits/RELEASE_\\1_\\2_\\3">' . '\\1.\\2.\\3.0 \\4</a>', '/([0-9]+)\.([0-9]+)\.([0-9]+)\.([1-9][0-9]*) (\([0-9-]+\))/' => '<a id="\\1_\\2_\\3_\\4"></a>' - . '<a href="url.php?url=' . $github_url . 'commits/RELEASE_\\1_\\2_\\3_\\4">' + . '<a href="' . Url::getFromRoute('/url') . '&url=' . $github_url . 'commits/RELEASE_\\1_\\2_\\3_\\4">' . '\\1.\\2.\\3.\\4 \\5</a>', // Highlight releases (not linkable) @@ -95,7 +100,6 @@ class ChangeLogController extends AbstractController // Links target and rel '/a href="/' => 'a target="_blank" rel="noopener noreferrer" href="', - ]; $this->response->header('Content-type: text/html; charset=utf-8'); diff --git a/libraries/classes/Core.php b/libraries/classes/Core.php index 2ecff03c31..94b5b6ff3d 100644 --- a/libraries/classes/Core.php +++ b/libraries/classes/Core.php @@ -633,10 +633,10 @@ class Core $query = http_build_query(['url' => $vars['url']]); if ($GLOBALS['config'] !== null && $GLOBALS['config']->get('is_setup')) { - return '../url.php?' . $query; + return '../index.php?route=/url&' . $query; } - return './url.php?' . $query; + return 'index.php?route=/url&' . $query; } /** diff --git a/libraries/classes/Html/Generator.php b/libraries/classes/Html/Generator.php index 746f012589..da73100420 100644 --- a/libraries/classes/Html/Generator.php +++ b/libraries/classes/Html/Generator.php @@ -636,8 +636,8 @@ class Generator . urlencode(self::generateRowQueryOutput($sqlQuery)); $explainLink .= ' [' . self::linkOrButton( - htmlspecialchars('url.php?url=' . urlencode($url)), - null, + Url::getFromRoute('/url'), + ['url' => $url], sprintf(__('Analyze Explain at %s'), 'mariadb.org'), [], '_blank', @@ -1071,7 +1071,7 @@ class Generator if (! empty($target)) { $tagParams['target'] = $target; - if ($target === '_blank' && str_starts_with($url, 'url.php?')) { + if ($target === '_blank' && str_starts_with($url, 'index.php?route=/url&url=')) { $tagParams['rel'] = 'noopener noreferrer'; } } diff --git a/libraries/classes/Sanitize.php b/libraries/classes/Sanitize.php index f8366aec60..056459767e 100644 --- a/libraries/classes/Sanitize.php +++ b/libraries/classes/Sanitize.php @@ -46,7 +46,7 @@ class Sanitize $url = strtolower($url); $valid_starts = [ 'https://', - './url.php?url=https%3a%2f%2f', + 'index.php?route=/url&url=https%3a%2f%2f', './doc/html/', './index.php?', ]; |