Назад | Перейти на главную страницу

Принудительный удаленный вход phpMyAdmin

Я хочу, чтобы у пользователей был доступ к phpMyAdmin с любого компьютера. Есть несколько пользователей, и я хочу требовать входа в систему. Однозначно было бы нормально иметь только удаленный доступ. (Все, что мне нужно сделать, чтобы использовать его локально, - это использовать удаленный адрес.) Требуется удаленный доступ.

Я установил сервер Apache 2.4.23 с PHP 7.0.13 и 4.6.5.2 phpMyAdmin (XAMPP). Я настроил доступ для нескольких учетных записей к MySQL и проверил, что каждый человек может входить в систему и выходить из нее на локальном хосте (а также автоматически выходить из системы после ограничения по времени неиспользования). Когда я переключился на удаленный доступ к phpMyAdmin, phpMyAdmin автоматически входит в учетную запись root и не может выйти. Кнопка для выхода есть, но ее описание - «очистить данные сеанса», и это все, что она делает.

Я уже несколько дней искал ответы и могу гарантировать, что изменение auth_type на config или http не исправит. Ни одно из других решений, которые я нашел, не помогло.

ОБНОВЛЕНИЕ: я установил пароль для root и pma, и он правильно работает на localhost. Удаленный доступ вызывает ошибку отказа в доступе.

Вот мой config.inc для phpMyAdmin (я тестировал много вариантов в верхнем разделе .. auth_type и т. Д.):

    <?php
/*
 * This is needed for cookie based authentication to encrypt password in
 * cookie
 */
$cfg['blowfish_secret'] = 'xampp'; /* YOU SHOULD CHANGE THIS FOR A MORE SECURE COOKIE AUTH! */

/*
 * Servers configuration
 */
$i = 0;

/*
 * First server
 */
$i++;

/* Authentication type and info */
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['AllowNoPassword'] = false;
$cfg['Lang'] = '';

/* Bind to the localhost ipv4 address and tcp */
$cfg['Servers'][$i]['host'] = '127.0.0.1';
$cfg['Servers'][$i]['connect_type'] = 'tcp';

/* User for advanced features */
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = '';

/* Advanced phpMyAdmin features */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma__bookmark';
$cfg['Servers'][$i]['relation'] = 'pma__relation';
$cfg['Servers'][$i]['table_info'] = 'pma__table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma__table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma__pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma__column_info';
$cfg['Servers'][$i]['history'] = 'pma__history';
$cfg['Servers'][$i]['designer_coords'] = 'pma__designer_coords';
$cfg['Servers'][$i]['tracking'] = 'pma__tracking';
$cfg['Servers'][$i]['userconfig'] = 'pma__userconfig';
$cfg['Servers'][$i]['recent'] = 'pma__recent';
$cfg['Servers'][$i]['table_uiprefs'] = 'pma__table_uiprefs';
$cfg['Servers'][$i]['users'] = 'pma__users';
$cfg['Servers'][$i]['usergroups'] = 'pma__usergroups';
$cfg['Servers'][$i]['navigationhiding'] = 'pma__navigationhiding';
$cfg['Servers'][$i]['savedsearches'] = 'pma__savedsearches';
$cfg['Servers'][$i]['central_columns'] = 'pma__central_columns';
$cfg['Servers'][$i]['designer_settings'] = 'pma__designer_settings';
$cfg['Servers'][$i]['export_templates'] = 'pma__export_templates';
$cfg['Servers'][$i]['favorite'] = 'pma__favorite';

/*
 * End of servers configuration
 */

?>

auth_type config предполагает, что конфигурация имени пользователя и пароля будет использоваться файлом конфигурации, в вашем случае

$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';

Чтобы изменить это поведение, вы должны установить auth_type к cookie очистите файлы cookie и попробуйте еще раз.

Если вы хотите получить доступ к phpMyAdmin с локального хоста с «root» без ввода учетных данных, как предлагает ваша конфигурация, но вы хотите удаленно принудительно выполнить вход пользователей, вы можете сделать простой взлом,

$ip = $_SERVER['REMOTE_ADDR'];
if ( ! filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) )
{
    $cfg['Servers'][$i]['auth_type'] = 'config';
}
else {
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
}