Authentifizierungs-Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Authentifizierungs-Problem

    Hallo,

    ich versuche, eine mit .htpasswd geschützte Seite aufzurufen.
    Ich habe bereits Username und Passwort und will sie an den Server übergeben, damit die Abfrage nach Username/Passwort nicht noch einmal vom Apache erfolgt.

    Ich übergebe die Werte so:
    $_SERVER["AUTH_TYPE"]="Basic";
    $_SERVER["PHP_AUTH_USER"]=$user;
    $_SERVER["PHP_AUTH_PW"]=$pass;
    und versuche danach die Seite aufzurufen:
    header("Location: http://www.url.de/index.htm");

    Leider bekomme ich aber immer noch die Passwortabfrage angezeigt,
    obwohl bereits die Werte vorliegen.

    Apache läuft als Modul und nicht als CGI.

    Wo liegt mein (Denk)Fehler?

    Selbst wenn ich den laut RFC 2617 gültigen Authorization Header mitschicke, bekomme ich die Passwortabfrage????

    so soll das Teil laut RFC aussehen, bringt abba nix?
    header("Authorization: BASIC ".base64_encode($user.":".$pass));

    Weiß jemand Rat?
    Oder muß ich echt die komplette Kommunikation über ein Socket nachbauen?
    (Get / -> 401 -> Authorization ) ?

  • #2
    Re: Authentifizierungs-Problem

    Original geschrieben von OhneWitz
    Leider bekomme ich aber immer noch die Passwortabfrage angezeigt,
    obwohl bereits die Werte vorliegen.
    die werte liegen mit sicherheit nicht vor.

    $_SERVER ist ein array mit variablen, die vom server im php-script zur verfügung gestellt werden.

    du versuchst das jetzt umzudrehen, in dem du $_SERVER explizit werte zuweist. das ist zwar unlogisch, aber an sich noch nicht verboten.

    zu erwarten, dass lediglich zur laufzeit eines scriptes bekannte variablen in einem anderen script immer noch zur verfügung stehen, ist allerdings grober unsinn (egal, ob es sich jetzt um $_SERVER oder $bar handeln würde).
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Re: Re: Authentifizierungs-Problem

      p.s.:
      Selbst wenn ich den laut RFC 2617 gültigen Authorization Header mitschicke, bekomme ich die Passwortabfrage????.
      client-server-kommunikation hast du offenbar auch noch nicht verstanden ...

      diesen authorization header soll der client beim anfordern der ressource an den server schicken, er gehört also zu den request headern.

      ihn vom server aus an den client zu schicken (also response header), macht absolut keinen sinn.
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        ja, ist ja in Ordnung.
        Mach mich ruhig nieder ...

        ich gebe ja zu, daß meine "Lösungsansätze" nicht wirklich das Gelbe vom Ei waren, aber hast du auch eine LÖSUNG für das Problem?

        Kommentar


        • #5
          Original geschrieben von OhneWitz
          aber hast du auch eine LÖSUNG für das Problem?
          es gibt keine wirkliche lösung für das, was du vorhast.

          http auth sieht nun mal vor, das der client die authentifizierungsdaten im request an den server mitschickt.

          du versuchst jetzt aber, vom server aus, dem client ein verhalten aufzuzwingen, was dieser gar nicht vorsieht - der client gibt bei http auth die login-daten an den server weiter, die der user im aufpoppenden dialog eingegeben hat.


          ein möglichkeit wäre es, per location-header den redirect auf einen URL in der form
          http://usernameasswort@www.domain.test/geschuetzteseite.xyz
          zu setzen.

          dies wird zwar von vielen clients umgesetzt, dem standard für einen URL entspricht es aber nicht.
          darüber hinaus wird dieser URL inklusive der login-daten dadurch auch in der adressezeile des browsers angezeigt, evtl. sogar im verlauf gespeichert.
          also eine sehr unsichere, nicht regelkonforme möglichkeit, die deshalb die bezeichnung "lösung" schon gar nicht mehr verdient.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            http://usernameasswort@www.domain.test/geschuetzteseite.xyz
            in dieser Form hatte ich es bisher ...
            Aus den von dir genannten Sicherheits- und Kompatibilitätsgründen wollte diese Form ändern.
            Um es auf den Punkt zu bringen:
            Ich will mich "nur" per HTML Form beim Server anmelden und dabei Username und Passswort als Hidden Feld übergeben.

            Kommentar


            • #7
              Original geschrieben von OhneWitz
              Um es auf den Punkt zu bringen:
              Ich will mich "nur" per HTML Form beim Server anmelden und dabei Username und Passswort als Hidden Feld übergeben.
              um meine aussage nochmal auf den punkt zu bringen:
              geht nicht.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Warum nicht gleich die ganze Userverwaltung von PHP erledigen lassen ?
                Cocoa Entwicklertraining - Alles für die Apfelzucht

                Kommentar


                • #9
                  Warum nicht gleich die ganze Userverwaltung von PHP erledigen lassen ?
                  ist leider eine Vorgabe, die ich erfüllen muß

                  Kommentar

                  Lädt...
                  X