hawkmaster: PhpMyAdmin zusätzlicher htaccess Schutz

Hallo zusammen,

ich wollte mal auf einem Xampp versuchen für das PhpMyAdmin einen zusätzlichen htaccess Schutz einzurichten. PhpMyAdmin hatte bereits den AuthType "http"
$cfg['Servers'][$i]['auth_type']     = 'http';

Was ich versucht habe:

1. ein zusätzliches übergeordnetes Verzeichnis angelegt.
C:\xampp\Secure
in diesem liegt das alte PhpMyAdmin Verzeichnis

2. In diesem "Secure" Verzeichnis liegt eine .htaccess Datei. Darin eine index.php mit eine Link
zum Phpmyadmin Verzeichnis.
<a href="phpMyAdmin/" title="Weiter">Weiter</a>

3. Im Apache die die httpd-xampp.conf editiert

Alias /phpmyadmin "c:/xampp/Secure/"
    <Directory "c:/xampp/Secure/">
        AllowOverride AuthConfig
        Require all granted
    </Directory>

Es klappt soweit das der erste htaccess Schutz greift. Man gibt ein User und Passwort ein. Dann klickt man auf den Link "Weiter". Dann kommt die alte Eingabeaufforderung von phpMyadmin. Wenn man diesen eingibt passiert dann aber nichts mehr. Man sieht unten in der Statusleiste ständig
"Nachschlagen auf localhost" und "bitte warten". Das geht dann ewig so.

Was ist falsch oder geht das so nicht mit dem zusätzlichen Schutz?

vielen Dank und viele Grüße
hawk

  1. Hallo

    1. ein zusätzliches übergeordnetes Verzeichnis angelegt.
      C:\xampp\Secure
      in diesem liegt das alte PhpMyAdmin Verzeichnis

      Es klappt soweit das der erste htaccess Schutz greift. Man gibt ein User und Passwort ein. Dann klickt man auf den Link "Weiter". Dann kommt die alte Eingabeaufforderung von phpMyadmin. Wenn man diesen eingibt passiert dann aber nichts mehr. Man sieht unten in der Statusleiste ständig
      "Nachschlagen auf localhost" und "bitte warten". Das geht dann ewig so.

    Was ist falsch oder geht das so nicht mit dem zusätzlichen Schutz?

    Zeigen die Verlinkungen der phpMyAdmin-Installation eventuell auf die Pfade, in denen die Installation ursprünglich zu finden war und nicht auf die, in die du phpMyAdmin verschoben hast?

    Tschö, Auge

    --
    Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
    Terry Pratchett, "Wachen! Wachen!"
    ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
    Veranstaltungsdatenbank Vdb 0.3
    1. Hallo Auge,

      danke für die Hilfe.

      hmm. In Phpmyadmin gibt es eigentlich keine Verlinkung
      Ich habe das PhpMyAdmin Verzeichnis so gelassen wie es war. Die dortige index.php macht ja keine Verlinkung.

      vielen Dank und viele Grüße
      hawk

      1. Hallo

        hmm. In Phpmyadmin gibt es eigentlich keine Verlinkung

        Ich weiß ja nicht, was du da hast, aber wenn ich phpMyAdmin öffne, sind da annähernd endlos viele Verlinkungen.

        Ich habe das PhpMyAdmin Verzeichnis so gelassen wie es war. Die dortige index.php macht ja keine Verlinkung.

        Öhhm, ich habe jetzt *hier* kein phpMyAdmin zur Verfügung, aber dort ist alles, worauf man aber klicken kann um eine Aktion auszulösen, was kein Formular ist, ein Link und das, was ein Formular ist, hat ein Ziel im Action-Attribut. Wenn der Pfad durch das Setzen eines Basisverzeichnisses während der Installation oder durch dabei generierte feste Einträge vorgegeben ist, ist er nach deiner Verschiebeaktion falsch.

        Tschö, Auge

        --
        Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
        Terry Pratchett, "Wachen! Wachen!"
        ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
        Veranstaltungsdatenbank Vdb 0.3
        1. Hallo

          Ich habe es jetzt nochmals überprüft.
          Es muss irgendwie an der weiteren Eingabe von Name und Passwort beim Anmelden an phpmyadmin liegen.

          Wenn ich in der config.inc.php von PhpMyadmin den "auth_type" von "http" nach "config" ändere, klappt es so.

          $cfg['Servers'][$i]['auth_type']     = 'config';

          ABer dann muss man ja das MySql Passwort in die config schreiben und die zweite htaccess Eingabe ist weg.

          vielen Dank und viele Grüße
          hawk

          1. Hi,

            Wenn ich in der config.inc.php von PhpMyadmin den "auth_type" von "http" nach "config" ändere, klappt es so.

            $cfg['Servers'][$i]['auth_type']     = 'config';

            ABer dann muss man ja das MySql Passwort in die config schreiben und die zweite htaccess Eingabe ist weg.

            Wenn du auth_type 'http' wählst, dann benutzt pma die dort eingegebenen Credentials als Benutzername und Passwort für die Datenbank-Verbindung – Zitat von der verlinkten Seite,

            “‘http’ authentication allows you to log in as any valid MySQL user via HTTP-Auth.”

            Dieser auth_type ist *nicht* dazu gedacht, den Zugriff auf phpMyAdmin mit *irgendwelchen* externen Credentials zu schützen – sondern um den Zugriff mit für MySQL gültigen Anmeldedaten zu erlauben.

            MfG ChrisB

            --
            Autocomplete has spoiled me to a point where it happens every so often that I encounter a CAPTCHA, and I just type in the first character … and then wait for the rest of the code to be automatically suggested :/
  2. Moin!

    Was ist falsch oder geht das so nicht mit dem zusätzlichen Schutz?

    Wenn du PHPMyAdmin im "http"-Zugangsmodus betreibst, müssen der Username und das Passwort für den Zugriff zur MySQL-Datenbank als Credentials der HTTP-Authentifizierung übermittelt werden.

    Dein Versuch, da drüber noch eine weitere HTTP-Authentifizierung zu legen, schlägt vermutlich aus simplen Gründen fehl: Entweder stimmen die Anmeldedaten für den oberen Schutz - dann kommst du nicht mit PMA an die Datenbank. Oder die Anmeldedaten stimmen für die DB - dann kommst du nicht mehr durch den oberen Schutz.

    Beides zur gleichen Zeit geht nicht.

    Ich würde allerdings auch die Sinnhaftigkeit erstmal in Frage stellen. Der Zugang wird dadurch nur deshalb "sicherer", weil insgesamt mehr unbekannte Daten einzugeben sind, um durchzukommen. Den gleichen Effekt kriegst du, wenn du dein Mysql-Passwort länger machst, ohne den Extra-Layer zu benutzen.

    Die einzige Chance, diese Kombination zu benutzen, und KEIN Passwort in die Config zu schreiben, ist die Authentifizierungsmethode "cookie".

    - Sven Rautenberg

    1. Wenn du PHPMyAdmin im "http"-Zugangsmodus betreibst, müssen der Username und das Passwort für den Zugriff zur MySQL-Datenbank als Credentials der HTTP-Authentifizierung übermittelt werden.

      Dein Versuch, da drüber noch eine weitere HTTP-Authentifizierung zu legen, schlägt vermutlich aus simplen Gründen fehl: Entweder stimmen die Anmeldedaten für den oberen Schutz - dann kommst du nicht mit PMA an die Datenbank. Oder die Anmeldedaten stimmen für die DB - dann kommst du nicht mehr durch den oberen Schutz.

      Beides zur gleichen Zeit geht nicht.

      Ich würde allerdings auch die Sinnhaftigkeit erstmal in Frage stellen. Der Zugang wird dadurch nur deshalb "sicherer", weil insgesamt mehr unbekannte Daten einzugeben sind, um durchzukommen. Den gleichen Effekt kriegst du, wenn du dein Mysql-Passwort länger machst, ohne den Extra-Layer zu benutzen.

      ACK. Um einen wirklich strukturellen Sicherheitsgewinn zu erzielen, böte sich noch der Einsatz von SSL an, sei es auch mittels eines eigens signifizierten Zertifikats.