Tom: Und noch eine Idee für die Fehlerquelle

Beitrag lesen

Hello,

Ich habe die Datei in einem Testverzeichnis abgelegt, das Testverzeichnis ist NICHT durch .htaccess gesichert.
http://www.e-tn.de/sandbox/cgitest/test.php5
Allerdings kann ich mich da nicht einloggen. Wie schon gefragt - woher weiß die function authenticate(), in gegen welche Datei sie die Login-Daten validieren soll? Wo schreibe ich den Username und das Passwort rein?

Die Funktion authenticate() weiß das gar nicht, die sorgt nur für den Versand des Headers mit dem Statuscode 401.

über doe Zeile

$data = file_get_contents("userdata.dat");  ## liegt z.B. im include_path

wird die Login-Daten-Datei einelesen.
Die solltest Du vorher mit dem Hilfs-Script create_userdata() erzeugt im selben Verzeichnis. Das ist jetzt nur zum testen, später muss die entweder woanders liegen, mit führendem Punkt geschützt werden gegen HTTP-Zugriff oder man nimmt gleich die offizielle .htaccess-Passwrot-Datei. Die müsste dann aber noch geparst werden und außerdem müsste jedes übermittelte Passwort noch verschlüsselt werden vor dem Vergleich. Das aber später.

Mich interessiert insbesondere, ob die Server-Variable bei PHP-CGI vorhanden ist.
    $_SERVER['HTTP_CGI_AUTHORIZATION']
Ja, das wäre interessant...

Das Dumme ist nur, dass die nur vorhanden ist, wenn der Authorization-Header vom Client mitgesandt worden ist und der sendet den nur mit, wenn er einmal durch den Vorgang "Status 401" erfolgreich durchmarschiert ist.

Ich befürchte, dass das Zerlegen des Feldes in "BASIC" n Leerzeichen und den String für Username und Passwort nicht sauber funktioniert, da ich mit explode() in meinem Beispiel nur mit einem Leerzeichen trenne und nicht mit unterschiedlich vielen.

Tausch mal das Stück Code aus

if (isset($_SERVER['HTTP_CGI_AUTHORIZATION']))
{
  #$_auth = explode(' ',$_SERVER['HTTP_CGI_AUTHORIZATION']);

$_auth = preg_split('#\s+#', $_SERVER['HTTP_CGI_AUTHORIZATION']);

$cred = base64_decode(trim($_auth[1]));
  $_UN_PW = explode(':', $cred);
}

Alle Verzeichnisse werden nur durch Scripte aufgelistet.
Wie meinst?

nicht mehr durch den index-Mechanismus des Servers, sondern durch ein Script, dass sich die Dateinamen z.B. mit glob() beschafft und dann eine Link-Liste daraus macht.

Es bleibt spannend...

Ja, denn es lohnt sich nur, das sauber auszuarbeiten, wenn es bei CGI auch funktioniert.

Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)

0 42

htaccess - keine Login-Daten im SERVER-Array

Tom Feller
  • php
  1. 0
    Matze
    1. 0
      Tom Feller
      1. 0
        Matze
        1. 0
          Tom
      2. 0
        Tom
        1. 0
          Tom Feller
          1. 0
            Tom
            1. 0
              Tom Feller
              1. 0

                Zum Testen

                Tom
                1. 0
                  Tom Feller
                  1. 0
                    Tom
                  2. 0
                    Tom
                    1. 0

                      Zum Testen, Version für CGI

                      Tom
            2. 0
              Tom
              1. 0
                Tom Feller
  2. 0
    Sven Rautenberg
    1. 0
      Tom
      1. 0
        Sven Rautenberg
    2. 0
      Tom Feller
      1. 0

        Bitte noch den Test durchführen

        Tom
        1. 0
          Tom Feller
          1. 0

            Und noch eine Idee für die Fehlerquelle

            Tom
          2. 0

            Erste Fehlerquelle gefunden

            Tom
            1. 0
              Tom Feller
              1. 0

                Kommt $_SERVER['HTTP_CGI_AUTHORIZATION'] an?

                Tom
                1. 0
                  Tom Feller
                  1. 0
                    Tom Feller
                    1. 0
                      Tom
                      1. 0
                        Tom Feller
                        1. 0

                          Rien ne vas plus avec cet server

                          Tom
                          1. 0
                            Tom Feller
                            1. 0
                              Tom
                              1. 0
                                Tom Feller
                  2. 0
                    Tom
      2. 1
        Sven Rautenberg
        1. 0
          Tom Feller
          1. 1
            Sven Rautenberg
            1. 0
              Tom Feller
              1. 0

                Atombomben und Atomkraftwerke ;-)

                Christian Seiler
                • menschelei
            2. 0

              Crypt auf MD5-Basis

              Dennis
              • programmiertechnik
              1. 0
                Tom Feller