[PHP]Passwortschutz für Verzeichnisse

Diskutiere [PHP]Passwortschutz für Verzeichnisse im Ruby, php, Perl, Python ... Forum im Bereich Programmieren unter Linux/Unix; Hi, ich hätte gerne auf meinem Webserver, dass auf der Startseite der Benutzername und das Passwort angegeben werden müssen und man sich so...

  1. #1 Nemesis, 03.04.2010
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.176
    Zustimmungen:
    0
    Hi,
    ich hätte gerne auf meinem Webserver, dass auf der Startseite der Benutzername und das Passwort angegeben werden müssen und man sich so einloggen kann.
    Also wie bei htaccess, nur eben, dass ich kein popup haben möchte, sondern dass ich es gerne in die startseite integrieren würde.

    Was ich so bei google gefunden habe, ist das nicht möglich. Wie löst man das am besten ?

    es soll dann jeder benutzer nach dem login eine eigene Startseite bekommen, aber die Unterseiten/Verzeichnisse sollen nicht ohne login aufgerufen werden können, also eigentlich schon das was htaccess macht.

    kann man das auch auf andere weise lösen ?

    danke !
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 sim4000, 03.04.2010
    sim4000

    sim4000 Lebende Foren Legende

    Dabei seit:
    12.04.2006
    Beiträge:
    1.933
    Zustimmungen:
    0
    Was willst Du denn schützen?
    Ein Verzeichnis mit Directory Listing oder ne richtige Website?
     
  4. #3 kartoffel200, 03.04.2010
    Zuletzt bearbeitet: 03.04.2010
    kartoffel200

    kartoffel200 AMD Fanboy Since 2003

    Dabei seit:
    12.03.2007
    Beiträge:
    938
    Zustimmungen:
    0
    Eine Session ist dafür nötig.
    Du brauchst ein HTML Passwort Formular das als Post gesendet wird. Eine PHP Datei die $_POST die Zugangsdaten vergleicht mit DB oder Textdatei etc.

    PHP:
    session_start();
    if(isset(
    $_POST["user"]))
        {
        if( 
    $_POST["user"] == $usrn && $_POST["passwd"] == $pwd )
            {
            
    $_SESSION["user"] = $_POST["user"];
            
    $_SESSION["passwd"] = $_POST["passwd"];
                    
            echo 
    '<div id="menu"><center>';
            include(
    'navi.php');
            echo 
    '</div><div id="content">';
            include(
    'content.php');
            }
        }
    Code:
    <form action=login.php method="post">
    Auf der ersten Seite muss die Session gestoppt werden, da evtl ein unbekannter die selbe Session ID hat.
    Evtl kannst du jedem über die Session ja zuweisen was er sehen darf.
     
  5. #4 saeckereier, 03.04.2010
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Das Kennwort in der Session abzulegen ist keine gute Idee.
     
  6. #5 Nemesis, 03.04.2010
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.176
    Zustimmungen:
    0
    hm ... wie macht mans dann am besten ?
     
  7. #6 kartoffel200, 03.04.2010
    Zuletzt bearbeitet: 04.04.2010
    kartoffel200

    kartoffel200 AMD Fanboy Since 2003

    Dabei seit:
    12.03.2007
    Beiträge:
    938
    Zustimmungen:
    0
    Stimmt eigentlich würde der User reichen. Man brauch noch eine Überprüfung um z.B. festzustellen ob auf einer anderen Seite der User überhaupt zugriff haben darf.
    Einfach mit if (!isset) schauen ob die $_SESSION["user"] gesetzt ist.
     
  8. #7 saeckereier, 03.04.2010
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Jup. Das Kennwort wird nur während der Authentifizierung benötigt, danach kann man es wegwerfen. Alles was in die Session kommt liegt im Klartext auf der Platte. Das sollte so wenig wie möglich sein.
     
  9. amöbe

    amöbe Tripel-As

    Dabei seit:
    21.01.2007
    Beiträge:
    188
    Zustimmungen:
    0
    Aber wenn man einen Paswort-Hash in die Session packt, kann man mit einen Passwortwechsel schnell und einfach alle Sessions invalidieren.
     
  10. #9 kartoffel200, 03.04.2010
    Zuletzt bearbeitet: 03.04.2010
    kartoffel200

    kartoffel200 AMD Fanboy Since 2003

    Dabei seit:
    12.03.2007
    Beiträge:
    938
    Zustimmungen:
    0
    @saeckereier
    Kann man, bugs ausgenommen, vom Server abfragen welchen wert $_SESSION[password] hätte wenn man in eine laufende Session gerät die man per Zufallszahl generiert hat und so Benutzerdaten klauen ?
     
  11. #10 saeckereier, 03.04.2010
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Naja, $_SESSION kannst du ja nur aus PHP heraus auslesen. Du könntest Daten klauen wenn du entweder auf die Sessiondateien Zugriff erhälst oder PHP Code einschleusen kannst. Dann sind aber auch meistens ganz andere Dinge möglich. Auf der anderen Seite ist das der alte Grundsatz der Datensparsamkeit, warum ein Kennwort irgendwo hin speichern, wo man es gar nicht braucht?

    Amöbe: Das setzt aber auch voraus, dass du bei jedem Aufruf eines PHP-Skriptes wieder das Kennwort aus dem Backend holst bzw. seinen Hash. Das kostet auch nicht wenig Rechenzeit. Wenn gefordert kann man es so natürlich machen. Und der Hash ist natürlich deutlich weniger kritisch als das Kennwort an sich. Guter Stil wäre es ohnehin, wenn das Kennwort nur dem PHP-Skript der Login-Seite bekannt ist und innerhalb des Skriptes daraus ein Hash gebaut wird, der dann mit einem Hash in der DB verglichen wird. So wandert das Kennwort nirgendswo im Klartext lang. (SSL-Verschlüsselung des Formulars mal vorausgesetzt)
     
  12. #11 Nemesis, 06.04.2010
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.176
    Zustimmungen:
    0
    wenn in einer offenen session ein ordner geöffnet wird, der mit htaccess geschützt ist, dann wird dafür auch der benutzername und das passwort der session verwendet oder ?

    wie kann man die eingaben mit einer datei/datenbank vergleichen, in der das passwort und benutzernamen hinterlegt sind?

    danke !
     
  13. #12 sim4000, 07.04.2010
    sim4000

    sim4000 Lebende Foren Legende

    Dabei seit:
    12.04.2006
    Beiträge:
    1.933
    Zustimmungen:
    0
  14. #13 kartoffel200, 07.04.2010
    Zuletzt bearbeitet: 07.04.2010
    kartoffel200

    kartoffel200 AMD Fanboy Since 2003

    Dabei seit:
    12.03.2007
    Beiträge:
    938
    Zustimmungen:
    0
    PHP:
    session_start();
    if(isset(
    $_POST["user"]))
        {
        if( 
    $_POST["user"] == $usrn && $_POST["passwd"] == $pwd )
            {
            
    $_SESSION["user"] = $_POST["user"];
            
    $_SESSION["passwd"] = $_POST["passwd"];
                    
            echo 
    '<div id="menu"><center>';
            include(
    'navi.php');
            echo 
    '</div><div id="content">';
            include(
    'content.php');
            }
        }  
    Was du aus einer DB brauchst wären $usrn und $pwd wie das gehen sollte findest du im folgenden Link. Ka hab noch nie mit DBs gearbeitet.
    http://www.php4-forum.de/beispiele/login.htm
    Also ein DB conncet und dann mit PHP abfragen ob s richtig ist was in der Maske ankam. Auf folgeseiten musst du immer Prüfen ob Leser in der Session und ob diese zugelassen ist also immer mit if (!isset=$_SESSION["user"])){
    } schauen. Am besten eine Datei per include einbinden.

    Auf der Seite der Maske solltest du erst mal die Session beenden und starten. So kommt keiner ungültig in eine Session eines anderen.


    Ein wirklich gutes Werk was ich dir zu PHP neben php.net empfehlen kann ist Einstieg in PHP 5 & MySQL5 von Thomas Theis
    http://www.galileocomputing.de/kata...ssion=60585403A4d4j9tI9lo&prodtype=standalone

    Sonst gibts noch einen guten Riesenwälzer dessen Titel mehr entfallen ist der aber meist zu viel hat und auch wesentlich teurer ist. Ich werd bei zeiten da mal den Titel raussuchen.
     
  15. #14 Nemesis, 07.04.2010
    Zuletzt bearbeitet: 07.04.2010
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.176
    Zustimmungen:
    0
    hm, ok, dann sind aber sessions nicht das was ich gesucht habe ... ich habe verzeichnisse mit htaccess geschützt und würde die passworteingabe gerne in einem html-formular machen.


    tante edit sagt, dass das nicht geht, siehe »link«
     
  16. #15 kartoffel200, 07.04.2010
    kartoffel200

    kartoffel200 AMD Fanboy Since 2003

    Dabei seit:
    12.03.2007
    Beiträge:
    938
    Zustimmungen:
    0
    Du könntest die files aber mit php auflisten lassen und ausgeben, sowie damit auch einen Link erstellen.
     
  17. #16 Nemesis, 07.04.2010
    Zuletzt bearbeitet: 07.04.2010
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.176
    Zustimmungen:
    0
    ich hatte mir überlegt, nachem solen ja die links zu den unterseiten angezeigt werden, dass dort die links via php erstellt werden und dort dann gleich das passwort und der benutzername in den link eingebaut werden.

    [user]:[password]@url


    hm ... das geht so auch nicht ...
     
Thema:

[PHP]Passwortschutz für Verzeichnisse

Die Seite wird geladen...

[PHP]Passwortschutz für Verzeichnisse - Ähnliche Themen

  1. Welches Linux und Desktop für alten Laptop

    Welches Linux und Desktop für alten Laptop: ... mit 1GHZ Singlecore-CPU und 1GB RAM? Gibt es da noch etwas brauchbares, womit man auch noch Youtube-Videos ansehen kann (auch in geringerer...
  2. HEY, ALTER! Alte Rechner für junge Leute.

    HEY, ALTER! Alte Rechner für junge Leute.: Wenn Ihr aus der Gegend um Braunschweig, oder aus Hamburg, oder aus dem Raum Lingen, Meppen, Nordhorn seid.... dann sucht doch mal die Initiative...
  3. UMASK - Berechtigungen für SFTP-Files

    UMASK - Berechtigungen für SFTP-Files: Von einem Client werden per SFTP Daten auf einen SFTP-Server geschoben. Wie kann ich die Berechtigungen der Files verändern, so dass sie auf dem...
  4. Hilfe für ein shell script

    Hilfe für ein shell script: Hallo Leute, vielleicht kann mir jemand Helfen, folgende Thematik habe ich. Ich schrieb ein Script zum Kopieren von Dateien von einer...
  5. Nginx als Reverse Proxy für Nextcloud und Emby

    Nginx als Reverse Proxy für Nextcloud und Emby: Hallo, wie der Titel schon sagt möchte ich Nginx als Reverse Proxy für Nextcloud und Emby verwenden. Für Nextcloud habe ich aus einer Anleitung...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden