Ankündigung

Einklappen
Keine Ankündigung bisher.

Mit PHP htaccess Authentication einloggen

Einklappen

Neue Werbung 2019

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

  • Mit PHP htaccess Authentication einloggen

    Habe mal eine Frage.

    Ich habe ein Verzeichnisschutz mit htaccess angelegt, sodass man nur darauf zugreifen kann wenn, man den Username und Passwort kennt.

    Soweit so gut.

    Nun möchte ich aber, dass ein PHP-Script den Browser per header (oder so) mitteilt, das man bereits eingeloggt ist, weil der User sich bereits über ein PHP-Script auf der Website erfolgreich eingeloggt hat. Also der HTTP-Authentifizierung über das PHP-Script den Befehl geben, dass er erfolgreich eingeloggt ist, sodass er sich nicht nochmal über die HTTP-Authentifizierung einloggen muss, wenn er auf diesen geschützten Ordner zugreifen will.

    In diesem geschützten Ordner liegen nämlich Dateien drin, auf die man nur zugreifen darf, wenn er wie gesagt schon über die Website eingeloggt ist. Nur Mitglieder haben darauf zugriff, bei anderen soll dann die normale Browser Login HTTP-Authentifizierungs - Abfrage kommen.

    Geht sowas überhaupt? Ich suche schon den ganzen Tag bei Google, finde dazu aber nichts passendes.

    Man kann wohl einzelne Dateien via HTTP-Authentifizierung schützen, aber das will ich nicht. Ich möchte ja einen kompletten Ordner via htaccess schützen.

    Ich hoffe ihr wisst was ich meine und könnt mir dabei helfen.

  • #2
    Zitat von Uwe450 Beitrag anzeigen
    Nun möchte ich aber, dass ein PHP-Script den Browser per header mitteilt, das man bereits eingeloggt ist, weil der User sich bereits über ein PHP-Script auf der Website erfolgreich eingeloggt hat. Also der HTTP-Authentifizierung über das PHP-Script den Befehl geben, dass er erfolgreich eingeloggt ist, sodass er sich nicht nochmal über die HTTP-Authentifizierung einloggen muss, wenn er auf diesen geschützten Ordner zugreifen will.
    Das geht nicht. Du kannst den Browser nicht per Header dazu bringen die Zugangsdaten für HTTP-Auth mitzuschicken (ein Login in dem Sinne gibt es bei HTTP-Auth nicht, die Zugangsdaten werden bei jedem Request mitgeschickt).

    In diesem geschützten Ordner liegen nämlich Dateien drin, auf die man nur zugreifen darf, wenn er wie gesagt schon über die Website eingeloggt ist. Nur Mitglieder haben darauf zugriff, bei anderen soll dann die normale Browser Login HTTP-Authentifizierungs - Abfrage kommen.
    Leg die Dateien außerhalb des Document-Root ab und liefere sie per Script aus.

    Kommentar


    • #3
      Muss nicht unbedingt per Header sein, kann natürlich auch ein anderer Weg sein.

      Kommentar


      • #4
        Zitat von Uwe450 Beitrag anzeigen
        Muss nicht unbedingt per Header sein, kann natürlich auch ein anderer Weg sein.
        Es geht auch auf anderem Weg nicht.

        Kommentar


        • #5
          Ok, schade.

          Leg die Dateien außerhalb des Document-Root ab und liefere sie per Script aus.
          Das wäre natürlich eine Möglichkeit, allerdings handelt es sich um Videos. Die könnte ich per PHP-Script wohl nicht ausliefern. Bei Bildern wäre das natürlich kein Problem.

          Kommentar


          • #6
            Du kannst über die Verzeichnisebene mit PHP sehr wohl auf Dateien zugreifen, die in Verzeichnissen liegen, die per htaccess geschützt sind. Schlagworte: video streaming php.

            Kommentar


            • #7
              Das geht nicht. Du kannst den Browser nicht per Header dazu bringen die Zugangsdaten für HTTP-Auth mitzuschicken (ein Login in dem Sinne gibt es bei HTTP-Auth nicht, die Zugangsdaten werden bei jedem Request mitgeschickt).
              jo:
              Zitat von http://tools.ietf.org/html/rfc2617
              The value of the nextnonce directive is the nonce the server wishes
              the client to use for a future authentication response. The server
              may send the Authentication-Info header with a nextnonce field as a
              means of implementing one-time or otherwise changing nonces. If the
              nextnonce field is present the client SHOULD use it when constructing
              the Authorization header for its next request. Failure of the client
              to do so may result in a request to re-authenticate from the server
              with the "stale=TRUE".
              scheint mir aber ein login in dem sinne zu sein.

              @TE:
              http://www.php.de/server-hosting-und...eschuetzt.html

              Kommentar


              • #8
                Erstmal danke für die ganzen Tipps!

                Ich hätte die Möglichkeit die Dateien nicht direkt öffentlich zugänglich zu machen. Also dass nur ein Script die Datei öffnen kann.

                Nun habe ich in meinem geheimen Ordner wo so keiner erstmal ran kommt viele Video-Dateien drin (.mov). Ich weiß allerdings nicht genau wie mein Script auf diese Datei zugreifen soll, also dass das Script die Video-Datei dann auch direkt im Browser abspielt und nicht als Download anbietet.

                Ich habe es gestern mal mit curl versucht. Dabei habe ich noch Content-Type: video/mp4" dazu geschrieben, was so allerdings nicht funktioniert. Er kann die Datei dann nicht laden, den Player hat er aber schon mal angezeigt.

                Wie würdet ihr das machen?

                Kommentar


                • #9
                  Ich weiß allerdings nicht genau wie mein Script auf diese Datei zugreifen soll, also dass das Script die Video-Datei dann auch direkt im Browser abspielt und nicht als Download anbietet.
                  Schon mit google versucht? zB: PHP mp4 OR mov streaming

                  http://www.tuxxin.com/php-mp4-streaming/
                  etc..
                  The string "()()" is not palindrom but the String "())(" is.

                  Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                  PHP.de Wissenssammlung | Kein Support per PN

                  Kommentar


                  • #10
                    Du kannst auch einen Geschütztenbereich via DB definieren und dann in der php datei als session mit übergeben

                    PHP-Code:
                    <?php
                    require_once "../entities/User.php";
                    require_once 
                    "../entities/conf.php";
                    session_start ();
                    if (isset (
                    $_SESSION["user"])) {
                        
                    /** @var User $user */
                        
                    $user $_SESSION["user"];
                     if(
                    $user->getSec() > 0) { ?>
                    Hier wird z.B: nur der user durchgelassen der in der DB im Feld sec eine 1 oder höher hat

                    Kommentar

                    Lädt...
                    X