Tom: Kommt $_SERVER['HTTP_CGI_AUTHORIZATION'] an?

Beitrag lesen

Hello,

<?PHP

error_reporting(E_ALL);

if (!isset($_SERVER['REMOTE_USER']))

{
     Header("WWW-authenticate: basic realm="Privater Bereich"");
     Header("HTTP/1.0 401 Unauthorized");
  }

echo "<pre>\n";

echo htmlspecialchars(print_r($_SERVER,1));

echo "</pre>\n";

?>

Nein, läuft leider auch nicht. Aber hier nochmal die blöde Frage, hab's wohl immer noch nicht verstanden:

Da waren noch Fehler drin.
Ich kann mir aber nicht vorstellen, dass $_SERVER['REMOTE_USER'] auch nicht im Script ankommt.

Header("WWW-authenticate: basic realm="Privater Bereich"");
Header("HTTP/1.0 401 Unauthorized");

öffnen ein Login-Fenster. Daten werden eingetragen.

Das kleine Fensterchen am Client ist die Reaktion auf den 401-Header.
Das zeigt den Teil aus "WWW-authenticate: basic" an, wenn es abgebrochen wird, zeigt es das (valide) HTML-Dokument an, was auf die Header folgen sollte.

Mit OK sendet der Browser nun einen neuen Request an dieselbe URI, es ist nur der HTTP-Header ergänzt durch die Zeile "Authorization Basic SvxyZ2VuOmJpZXJiYXVjaA=="

(hier mit dem verpackten Usernamen "Jürgen" und dem Passwort "bierbauch"

Diese Daten haben wir im Script zerlegt (es zumindest versucht) in die beiden Teile

$_UN_PW[0] und $_UN_PW[1]

Und die haben wir dann verglichen mit den Werten aus der Datei, wir erzeugt hatten.

if (isset($_userdata, $_UN_PW[0], $_UN_PW[1], $_userdata[$_UN_PW[0]])

and ($_UN_PW[1] == $_userdata[$_UN_PW[0]]))
{
  ## OK
}
else
{
    ### nochmal authenticate() aufrufen.
    ### und das Script danach mit exit abbrechen (Das EXIT steckt in der Funktion!)
}

Es ergibt sich also eine Schleife ("Pingpong") mit dem Client.

if (isset($_userdata, $_UN_PW[0], $_UN_PW[1],    ### Sind die Variablen gesetzt?

$_userdata[$_UN_PW[0]])                     ### ist der Schlüssel $_UN_PW[0] im
                                                 ### Array $_userdata vorhanden?

and ($_UN_PW[1] == $_userdata[$_UN_PW[0]]))  ### und ist dessen zugehöriger Wert = $_UN_PW[1]?
{
  ## OK
}

Der Test wird also vom Script vorgenommen.

Mehr steckt nicht dahinter.

Und wenn wir herausfinden könnten, warum im CGI-Script überhaupt keine Authentication Data ankommen, dann kännten wir das auch ausbauen...

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