Make redirector require valid token

This commit is contained in:
Michal Čihař
2011-05-20 09:01:20 +02:00
parent 32d8446e01
commit ecfc8ba4f7
3 changed files with 7 additions and 8 deletions

View File

@@ -477,8 +477,6 @@ if (! PMA_isValid($_REQUEST['token']) || $_SESSION[' PMA_token '] != $_REQUEST['
'media_type', 'custom_type', 'bs_reference',
/* for changing BLOB repository file MIME type */
'bs_db', 'bs_table', 'bs_ref', 'bs_new_mime_type',
/* URL redirector */
'url'
);
/**
* Require cleanup functions

View File

@@ -681,12 +681,15 @@ function PMA_array_remove($path, &$array)
* @return string URL for a link.
*/
function PMA_linkURL($url) {
$params = array();
$params['url'] = $url;
$goto = 'url.php' . PMA_generate_common_url($params);
if (!preg_match('#^https?://#', $url)) {
return $url;
} elseif (defined('PMA_SETUP')) {
return '../url.php?url=' . $url;
return '../' . $goto;
} else {
return './url.php?url=' . $url;
return './' . $goto;
}
}

View File

@@ -3,16 +3,14 @@
* URL redirector to avoid leaking Referer with some sensitive information.
*/
define('PMA_MINIMUM_COMMON', TRUE);
/**
* Gets core libraries and defines some variables
*/
require_once './libraries/common.inc.php';
if (empty($GLOBALS['url']) || ! preg_match('/^https?:\/\/[^\n\r]*$/', $GLOBALS['url'])) {
if (! PMA_isValid($_GET['url']) || ! preg_match('/^https?:\/\/[^\n\r]*$/', $_GET['url'])) {
header('Location: ' . $cfg['PmaAbsoluteUri']);
} else {
header('Location: ' . $GLOBALS['url']);
header('Location: ' . $_GET['url']);
}
?>