phpMyAdmin to najpopularniejszy webowy interfejs MySQL — i jeden z najczęściej atakowanych
elementów serwerów hostingowych. Niezabezpieczony panel to otwarte drzwi do całej bazy
danych. Konfiguracja zajmuje 15 minut i eliminuje 99% automatycznych ataków.
Opublikowano: 8 kwietnia 2026
config.inc.php — kluczowe ustawienia bezpieczeństwa
Główny plik konfiguracyjny to /etc/phpmyadmin/config.inc.php (VPS Debian/Ubuntu) lub config.inc.php w katalogu instalacji. Minimalna konfiguracja bezpieczeństwa:
<?php
// Unikalny losowy string (min 32 znaki) — wygeneruj: openssl rand -base64 32
$cfg['blowfish_secret'] = 'ZMIEN_NA_LOSOWY_STRING_32_ZNAKI';
// Wymagaj SSL do logowania
$cfg['ForceSSL'] = true;
// Ukryj wersję phpMyAdmin
$cfg['ShowPhpInfo'] = false;
$cfg['VersionCheck'] = false;
// Bezpieczne cookie (tylko HTTPS)
$cfg['CookieSameSite'] = 'Strict';
// Wyłącz połączenia do dowolnego serwera MySQL
$cfg['AllowArbitraryServer'] = false;
// Timeout sesji — 30 minut
$cfg['LoginCookieValidity'] = 1800;
$cfg['LoginCookieDeleteAll'] = true;
Ograniczenie dostępu przez .htaccess (Apache)
Najskuteczniejsza metoda — zezwól tylko na konkretne adresy IP. Stwórz lub edytuj plik
.htaccess w katalogu phpMyAdmin:
# Tylko te IP mają dostęp do phpMyAdmin
Order Deny,Allow
Deny from All
Allow from 203.0.113.10 # Twoje stałe IP biurowe
Allow from 203.0.113.20 # Twoje IP domowe
# Lub cały zakres sieci (np. biuro z dynamicznymi IP)
# Allow from 203.0.113.0/24
Dynamiczne IP: Jeśli Twój ISP przydziela dynamiczne IP, rozważ VPN (Tailscale
jest darmowy dla małych zespołów) lub SSH tunneling zamiast whitelist IP. SSH tunnel:
ssh -L 8080:localhost:80 user@serwer — potem otwórz localhost:8080/phpmyadmin w przeglądarce.
Automatyczne boty skanują /phpmyadmin/, /pma/, /mysql/ i dziesiątki podobnych ścieżek. Zmiana aliasu na niestandardowy (np.
/db-c8f2e1/) eliminuje tę kategorię ataków. Na Apache w
/etc/apache2/conf-enabled/phpmyadmin.conf:
# Zmień:
Alias /phpmyadmin /usr/share/phpmyadmin
# Na:
Alias /db-c8f2e1 /usr/share/phpmyadmin
# Następnie:
systemctl reload apache2
Lista kontrolna zabezpieczeń phpMyAdmin
blowfish_secret — ustaw losowy string 32+ znaków (nie domyślny pusty)
Zmień URL — nie używaj /phpmyadmin/, /pma/, /mysql/
HTTP Basic Auth — okno dialogowe przed formularzem logowania
Whitelist IP — przez .htaccess lub Nginx allow/deny
ForceSSL = true — połączenia tylko przez HTTPS
AllowArbitraryServer = false — tylko skonfigurowane serwery MySQL
Aktualizuj phpMyAdmin — sprawdzaj CVE i aktualizuj regularnie
Wyłącz gdy nieużywany — systemctl disable phpmyadmin lub usuń alias
Najczęstsze pytania
Czy phpMyAdmin jest bezpieczny domyślnie?
+
Domyślna instalacja phpMyAdmin nie jest bezpieczna — dostęp do panelu jest publiczny (każdy może próbować się zalogować), wersja oprogramowania jest widoczna (ułatwia celowane ataki), a panel często jest pod standardowym adresem /phpmyadmin/ który boty skanują automatycznie. Minimalny zestaw zabezpieczeń: zmiana URL panelu, ograniczenie dostępu do IP, HTTP Basic Auth lub VPN, ustawienie silnego blowfish_secret.
Jak zmienić adres URL phpMyAdmin?
+
Na cPanel: zmień alias w konfiguracji Apache/Nginx. Na serwer VPS: w pliku /etc/apache2/conf-enabled/phpmyadmin.conf zmień Alias /phpmyadmin na /db-admin lub dowolny inny. Na DirectAdmin: zależnie od konfiguracji serwera — panel może być dostępny przez subdomenę lub dedykowany port. Niestandardowy URL nie jest wystarczającym zabezpieczeniem samym w sobie — to security through obscurity. Połącz z HTTP Basic Auth.
Czy powinienem wyłączyć phpMyAdmin na produkcji?
+
Jeśli phpMyAdmin nie jest regularnie używany na serwerze produkcyjnym — rozważ wyłączenie lub dostęp tylko przez VPN/SSH tunnel. Każda dodatkowa ekspozycja interfejsu administracyjnego to dodatkowa powierzchnia ataku. Alternatywa: używaj Adminer (jeden plik PHP, łatwiejszy do usunięcia po pracy) lub zarządzaj bazą wyłącznie przez SSH/WP-CLI. Na hostingu współdzielonym phpMyAdmin jest zarządzany przez dostawcę.
Najpierw hardening, potem wybór serwera
Jeśli chcesz samodzielnie kontrolować dostęp do phpMyAdmin, rozważ VPS-y, na których ustawisz własny firewall, Nginx i Basic Auth.
Mikrus
Dobry do ćwiczeń z restrykcjami IP, SSH tunnelingiem i backupem.
Twoja prywatność = Twoja decyzja. Używamy anonimowych plików cookies Google Analytics,
żeby wiedzieć które porównania hostingów są dla Ciebie przydatne. Bez Twojej zgody nie uruchamiamy
żadnych skryptów śledzących — domyślnie wszystko jest wyłączone.
Szczegóły w polityce prywatności.