Was ist das?

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

  • Was ist das?

    Hallo,
    auf die URL http://userw@www.seite.de leite ich mittels header() weiter. Wenn ich die Seite das erste mal aufrufe, erscheint das Standard-Popup, wo ich auf cancel drücke und keinen zugang habe. Wenn ich dann F5 drücke, brauche ich mich nicht mehr anzumelden und komme rein. Wieso geht das nicht gleich beim ersten Mal???

    DANKE!!!
    strauberry

  • #2
    woran das liegt kann ich dir auch nicht sagen, aber ....

    was ich dir sagen kann ....
    man sollte keine passwörter in der urlzeile schreiben ...

    mache doch statt dem header() einfach ein include der gewünschten daten.....
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Normalerweise nimmt der Browser als erstes Kontakt mit der restricted Area auf. Also wenn Du eine htaccess geschützte Seite aufrufst ist im BrowserHeader zunächst noch nicht die Userid und das Passwort hinterlegt. Der Server reagiert darauf mit dem Returncode: "HTTP/1.0 401 Unauthorized", worauf der Browser die Eingabeaufforderung zur Autentifizierung (Eingabe UserID und Password) promptet.

      Werden die Anmeldeinformationen eingegeben, setzt der Browser diese Infos in seinen Header und wendet sich mit der Anforderung an den Server. Der Server liest den Header, erkennt UID/PWD, vergleicht diese mit den in der htpasswd hinterlegten Kombination und wenn alles passt liefert der Host die angeforderten Daten.

      OK das ist der Standardfall.

      Nun der Sonderfall "header("Location: ...");
      Der Auslöser ist nun nicht client- (Browser) sondern serverside. UID/PWD sind im Browser Header noch nicht gesetzt. Serverside springt die Anforderung auf die restricted Area - da der Browser Header noch nicht gesetzt ist, reagiert der Server mit dem "HTTP/1.0 401 Unauthorized" Returncode. Der Browser startet das Login-Fenster. Jedoch hat der Browser durch die "uidwd@www.irgendwo.de" Angabe gleichzeitig die Anweisung erhalten diese Werte in den Header zu malen. Die Anweisung hat der Server an den Client gerichtet. Die Anweisung über die URL und der 401er gehen also vom Server parallel aus. Der Browser schreibt die Anmeldeinfos in den Header und wegen des 401er promptet er wie gesagt das Login-Fenster.

      Du drückst auf Abbrechen des Login-Fensters. Im Header ist aber bereits die UID:PWD Info hinterlegt.

      Beim F5 richtest Du diese Info an den Server und jetzt läuft das ganze wieder wie gehabt. Der Server liest den Header, übrprüft den Inhalt mit htpasswd, usf.

      Hättest Du anstatt Abbrechen zu drücken eine andere Benutzerkennung mit dem entsprechende PWD eingegeben, hätte diese Eingabe die zuvor belegte User-Password Kombination im Browser Header überschrieben.

      Ich hoffe das war so halbwegs verständlich.

      Kommentar


      • #4
        Hi,
        das mit dem include ist eine echt gute idee, nur leider nicht für mich
        Die Seite, die ich öffnen möchte, ist nämlich nicht von mir. Aber ich öffne die Datei in einem Frameset, deshalb steht die Seite nicht in der History oder kann über den Quelltext herausgefunden werden...
        Deshalb nochmal die Frage: Warum logt sich das Script erst beim 2. mal ein???

        DANKE!

        Kommentar


        • #5
          @strauberry
          siehe antwort von hand....
          konntest du wahrscheinlich nur nicht lesen...... weil du noch am tippen warst...

          @hand
          sehr verständlich. auf die variante wäre ich nicht gekommen....
          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Aber ich öffne die Datei in einem Frameset, deshalb steht die Seite nicht in der History oder kann über den Quelltext herausgefunden werden...
            sei dir da nicht so sicher...
            in der adressleiste des browsers taucht sie aber trotzdem bei den zuletzt besuchten seiten auf.

            Deshalb nochmal die Frage: Warum logt sich das Script erst beim 2. mal ein???
            siehe erklärung von hand, das war eigentlich ausführlich genug.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Ok danke danke danke
              Jetzt muss ich abwägen zwischen hässlichem Fenster oder PW in der History

              Und irgendwie was anderes gibt es nicht *toll* Alles gibts nur dafür, was echt dauernd gebraucht wird, gibt es sowas nicht !?!

              Hab schon mit
              - url
              - include
              - apache_lookup_uri
              - fopen
              - sessions (wobie die nicht wirklich dafür gemacht sind)
              probiert, aber alles schmarn

              Der S****S ist halt, dass die Daten, die ich lade nicht von mir sind sondern eine externe seite... wenn jemandem noch was einfällt
              BITTE HER DAMIT *VERWEIFEL*
              Da denkt man "was war heute nochmal? Achso ja: an EINEM problem rumgemacht!

              Kommentar


              • #8
                Und nun wie Du das Problem lösen kannst:

                Anstatt:

                PHP-Code:
                <?
                header("Location: http://test:test@localhost/restricted/");
                PHP-Code:
                <meta http-equiv="refresh" content="0; URL=http://test:test@localhost/restricted/"
                Dabei wird die Reihenfolge eingehalten. Der Browser wird über den Meta-Tag angewiesen die URL mit UID:PWD aufzurufen, der Header ist gesetzt, der Server empfängt, vergleicht, liefert die angeforderten Daten.

                h.a.n.d.
                Zuletzt geändert von hand; 09.12.2002, 22:51.

                Kommentar


                • #9
                  Das mit der History ist zwar wirklich nicht hübsch, was aber bei dieser Methode (htaccess) noch störender ist, ist der Umstand, dass bei jeder Interaktion mit dem Server im Header die UID:PWD Kombination mit über die Leitung geschichkt wird und mitgesnifft werden kann. Das schmerzt viel mehr als ein Historyeintrag lokal am "Personal" Computer.

                  Kommentar


                  • #10
                    Original geschrieben von hand
                    Und nun wie Du das Problem lösen kannst:
                    PHP-Code:
                    <meta http-equiv="refresh" content="0; URL=http://test:test@localhost/restricted/"
                    jau, passwort gleich in den quelltext... ideal :-)
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      aber strauberry will es ja nicht anders ...
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar

                      Lädt...
                      X