Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaurício Meneghini Fauth <mauricio@fauth.dev>2022-08-06 21:02:49 +0300
committerMaurício Meneghini Fauth <mauricio@fauth.dev>2022-08-06 21:02:49 +0300
commit75cf045fa3ec32d2a82b086d5516315b8fc38afe (patch)
tree1c54d81edc312230d357b01c78d85a64d43a6a47 /libraries
parent31511720730dba86476f7fff3fb2c3ef443c17f7 (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.php6
-rw-r--r--libraries/classes/Controllers/ChangeLogController.php20
-rw-r--r--libraries/classes/Core.php4
-rw-r--r--libraries/classes/Html/Generator.php6
-rw-r--r--libraries/classes/Sanitize.php2
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}) (.+[^ ]) +&lt;(.*@.*)&gt;/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?',
];