sql >> Database teknologi >  >> Database Tools >> phpMyAdmin

Sådan sikrer du phpMyAdmin

Den største trussel er, at en angriber kan udnytte en sårbarhed såsom; mappegennemgang eller brug af SQL Injection til at kalde load_file() at læse almindelig tekst brugernavn/adgangskode i konfigurationsfilen og derefter logge ind med phpmyadmin eller over tcp port 3306. Som en pentester har jeg brugt dette angrebsmønster til at kompromittere et system.

Her er en fantastisk måde at låse phpmyadmin på:

  • PhpMyAdmin mangler stærk bruteforce-beskyttelse, så du skal bruge en lang tilfældigt genereret adgangskode.
  • TILLAD IKKE FJERNETRODLOGIN! I stedet kan phpmyadmin konfigureres til at bruge "Cookie Auth" for at begrænse, hvilken bruger der kan få adgang til systemet. Hvis du har brug for nogle root-privilegier, skal du oprette en brugerdefineret konto, der kan tilføje/slippe/oprette, men som ikke har grant eller file_priv .
  • Fjern file_priv tilladelser fra hver konto. file_priv er et af de farligste privilegier i MySQL, fordi det giver en hacker mulighed for at læse filer eller uploade en bagdør.
  • Hvidliste IP-adresser, som har adgang til phpmyadmin-grænsefladen. Her er et eksempel på .htaccess reulset:
Order deny,allow
Deny from all
allow from 199.166.210.1
  • Har ikke en forudsigelig filplacering som:http://127.0.0.1/phpmyadmin . Sårbarhedsscannere som Nessus/Nikto/Acunetix/w3af vil scanne for dette.

  • Firewall fra tcp-port 3306, så den ikke kan tilgås af en angriber.

  • Brug HTTPS, ellers kan data og adgangskoder blive lækket til angriberen. Hvis du ikke vil betale $30 for et certifikat, så brug en selvsigneret. Du vil acceptere det én gang, og selvom det blev ændret på grund af en MITM, vil du blive underrettet.



  1. Hvordan henter man data fra SQL Server baseret på nedenstående eksempel?

  2. Sammensat udenlandsk nøglebegrænsning via PhpMyAdmin?

  3. Opdateringsforespørgsel gør felterne tomme i databasen

  4. Kode til at begrænse brugerregistrering - skjul/vis formular php