htaccess mit header() umgehen

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

  • htaccess mit header() umgehen

    Hallo,

    ich möchte nach einem Login in ein Verzeichnis mit htaccess-Schutz springen, dass von dort Daten herunter geladen werden können.

    Bislang habe ich das über ein JavaScript gemacht und in die URL mit "http://userw@www..." angegeben.

    Nun möchte ich aber diesen Weg mit PHP realisieren. Dachte daher, mit header() wird ja auch eine HTTP-Anfrage gestellt - mit include() würde die Datei ja hinter dem htaccess vorbei geleitet und die Downloads würden nicht funktionieren, da keine Anmeldung bei htaccess erfolgt ist.

    Aber es funktioniert nicht. Ich bekomme dennoch das htaccess-Fenster. Geht das doch nicht mit header()?
    Was gibts für Möglichkeiten?

    Der Hauptgedanke dabei ist, das beim Aufruf der Datei hinter dem htaccess Benutzer und Passwort nicht in der URL sichtbar sein sollen.
    Bisher hat die erste Datei nach dem htaccess sofort auf eine andere weitergeleitet.
    Nur wenn jemand JS deaktiviert hat, funktioniert die ganze Sache nicht mehr.

    Grüße,
    Andi

  • #2
    Re: htaccess mit header() umgehen

    Original geschrieben von andik2000
    Was gibts für Möglichkeiten?
    du kannst es ja mal richtig machen. z.b. OHNE htpasswd
    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
      Wieso ohne? Das Verzeichnis in das ich springe muß auf jeden Fall per htaccess geschützt sein. Das hat div. Gründe.
      Oder was meinst Du?

      Grüße, Andi

      Kommentar


      • #4
        Mhm, mit header() sendest du vom Server zum Client, aber der Client muss das PW / Usernamen ja zum Server senden...

        Würde also sagen dass das so nicht geht...
        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
        var_dump(), print_r(), debug_backtrace und echo.
        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

        Kommentar


        • #5
          Original geschrieben von andik2000
          Wieso ohne? Das Verzeichnis in das ich springe muß auf jeden Fall per htaccess geschützt sein. Das hat div. Gründe.
          und was hindert dich daran, die php funktion fpassthru() zu verwenden?
          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
            @Shurakai: Ahhh, jetzt machts "Bing"! Nun ist's mir klar.

            Ok, ich versuch mal was. Ich könnte ja mit fopen() eine Verbindung zu mir selbst hestellen. Darin übergebe ich die Zugangsdaten. Diese wurden ja dann gesendet.
            Dann gebe ich die aufgerufenen Datei mit der Dateiliste aus. Dann müßten alle Daten aufrufbar sein. Oder?

            Kommentar


            • #7
              Original geschrieben von andik2000
              Ich könnte ja mit fopen() eine Verbindung zu mir selbst hestellen. Darin übergebe ich die Zugangsdaten. Diese wurden ja dann gesendet.
              ja - vom server an den server.

              dem client sind damit die zugangsdaten aber natürlich immer noch nicht bekannt, er hat als selber keinen direkten zugriff über http auf das verzeichnis.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Ja dumm, funktioniert nicht.
                Ich bekomme zwar die Dateiliste als Ergebnis angezeigt, klicke ich dann aber da drauf, springt der htacces auf.

                Im Prinzip eine echt simple Frage:
                Wie kann ich htaccess-Daten an den Server übermitteln, dass es denkt, die Kommen vom User.
                Langsam wird mir der Vorgang klar, dass alles, wass ich per PHP mache ja serverseitig geschieht und somit gar keine Bestätigung vom Client an den Server geschickt wird.

                Aber wenn ich über zuvor genannte Methode auf einen fremden Server zugreife, kann ich mir Daten in einem geschützen Verzeichnis ziehen. Das habe ich schon gemacht. Warum klappt es dann nicht beim eigenen?

                Kommentar


                • #9
                  wenn du nicht auf meine tipps eingehst, brauchen wir dir ja auch nciht mehr helfen ... oder?
                  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


                  • #10
                    Natürlich gehe ich auf Tipps ein. Aber wie ich es probiert habe, scheint fpassthru nicht zu funktionieren. Und auf die Frage, wie genau Du das mit "Richtig mache ohne htpasswd" meinst, kam noch keine Info.

                    Also noch mal Grundlegend:

                    - Ich möchte ein Verzeichnis schützen, in dem weitere Kundenverzeichnisse liegen. Dort liegen komplette Websites (auch ohne PHP).
                    - Der Kunde logt sich mit seinen individuellen Zugangsdaten ein und erhält eine Liste seiner Projekte.
                    - Diese können angeklickt werden, das Projekt (Website) öffnet sich in einem neuen Fenster.
                    - Es muß sicher gestellt sein, dass nach dem Schließen des Browsers, die Besuchte Seite nicht mehr duch die Browser-History aufzurufen ist.
                    - Auch dürfen keine Passwörter in der URL auftauchen (wie bei http://userw@www... )

                    So siehts aus. Hat bisher auch funktioniert, bis auf die Sicherheitslücke, dass einmal kurz ein Javascript mit einem Redirect geladen wird, welches die Daten für den htaccess enthält. Das soll jetzt raus.

                    Das muß doch irgendwie gehen?

                    Dank für Eure Geduld!

                    Grüße, Andi

                    Kommentar


                    • #11
                      Original geschrieben von andik2000
                      Das muß doch irgendwie gehen?
                      nein, no, njet, niente, never, c`est impossiblé

                      OffTopic:
                      irgendwas davon muss er doch eigentlich verstehen können, oder?
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Hallo,

                        wieso nein?

                        Wenn sich Benutzer mit den selben Namen und Passwort anmeldet wie in der .htpasswd hinterlegt, dann kann ich darauf zugreifen und diese Daten senden. Die Frage ist nur, ob wie die erste Registrierung durchgeführt wird. Über Apache AUTH, dann funtzt es.

                        Versuchen über $PHP_AUTH_USER und $PHP_AUTH_PW

                        Bitte beachten, das in den Variablen die Inhalte unverschlüsselt sind.

                        Kommentar


                        • #13
                          Original geschrieben von Gizmo
                          wieso nein?
                          weil-es-nun-mal-so-ist[TM].

                          Wenn sich Benutzer mit den selben Namen und Passwort anmeldet wie in der .htpasswd hinterlegt, dann kann ich darauf zugreifen und diese Daten senden. Die Frage ist nur, ob wie die erste Registrierung durchgeführt wird. Über Apache AUTH, dann funtzt es.
                          wir reden hier von HTTP AUTH, oftmals salopp als "schutz mit htaccess" bezeichnet.

                          dabei muss der anfragende client dem webserver auf die aufforderung hin die logindaten übermitteln, andererseits erfolgt ein 403 forbidden statuscode.

                          wem bitte willst du da irgendwelche übergebenen daten "senden"?
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #14
                            Habe eben festgestellt, dass dass Verfahren:
                            http://userassword@www.domain.de unter Windows XP nicht funktioniert.

                            Muß man da was anders machen, oder geht das generell dort nicht?

                            Grüße Andi

                            Kommentar


                            • #15
                              Original geschrieben von andik2000
                              Habe eben festgestellt
                              wunderbar ... den umstand, dass das mit aktuellem service pack für den IE nicht mehr "geht", weil es ein sicherheitsrisiko darstellt (URL-spoofing), haben die meisten anderen schon lange vor dir bemerkt, weil es in diversen medien des öfteren zu lesen war, und auch hier im forum bei solchen fragen wie deinen schon des öfteren angemerkt wurde.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X