[PHP]Passwortschutz für Verzeichnisse

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von Nemesis, 03.04.2010.

  1. #1 Nemesis, 03.04.2010
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.165
    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

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    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
    Ort:
    In meinem Zimmer
    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
    Ort:
    L wie localhost
    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
    Ort:
    Im schönen Norden
    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.165
    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
    Ort:
    L wie localhost
    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
    Ort:
    Im schönen Norden
    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
    Ort:
    L wie localhost
    @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
    Ort:
    Im schönen Norden
    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.165
    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
    Ort:
    In meinem Zimmer
  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
    Ort:
    L wie localhost
    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. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 Nemesis, 07.04.2010
    Zuletzt bearbeitet: 07.04.2010
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.165
    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«
     
  17. #15 kartoffel200, 07.04.2010
    kartoffel200

    kartoffel200 AMD Fanboy Since 2003

    Dabei seit:
    12.03.2007
    Beiträge:
    938
    Zustimmungen:
    0
    Ort:
    L wie localhost
    Du könntest die files aber mit php auflisten lassen und ausgeben, sowie damit auch einen Link erstellen.
     
Thema:

[PHP]Passwortschutz für Verzeichnisse

Die Seite wird geladen...

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

  1. SAMBA für Windows10 Domäne einrichten

    SAMBA für Windows10 Domäne einrichten: Hallo, ich habe letztes Wochenende verzweifelt versucht, Samba auf meinem Server einzurichten, daher versuche ich aktuell meinen Fehler zu...
  2. Empfehlung für Server Distribution

    Empfehlung für Server Distribution: Hallo, ich habe hier zu Hause einen kleinen Heimserver, auf welchem ich ein paar Daten für den Zugriff im Haus, einen kleinen Web Service für...
  3. Kleinigkeiten für Euch, mich nicht :-) pkg_add ; DVD rw mounten

    Kleinigkeiten für Euch, mich nicht :-) pkg_add ; DVD rw mounten: Hallo, ich habe 2 Problemchen. Ich kann nichts mehr installieren. Ich brauche aber unbedingt ein Brenn-Programm. Ein schönen Partitionierer usw....
  4. Welche Distri für Programming from the Ground Up

    Welche Distri für Programming from the Ground Up: Hallo! Ich möchter gerne das Buch Programming from the Ground Up durcharbeiten. savannah_nongnu_org/projects/pgubook/ Da geht es um Programmieren...
  5. Zeichen an Zeilenanfang für bestimmten Zeilenbereich einfügen

    Zeichen an Zeilenanfang für bestimmten Zeilenbereich einfügen: Hallo, ich würde gerne in einem Textdokument, z.B. von Zeile 10 - 18, an den Zeilenanfang ein # einfügen. Habe mir schon diverse Seiten zu SED...