[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.168
    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. #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?
     
  3. #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.
     
  4. #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.
     
  5. #5 Nemesis, 03.04.2010
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.168
    Zustimmungen:
    0
    hm ... wie macht mans dann am besten ?
     
  6. #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.
     
  7. #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.
     
  8. 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.
     
  9. #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 ?
     
  10. #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)
     
  11. #11 Nemesis, 06.04.2010
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.168
    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 !
     
  12. #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
  13. #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.
     
  14. #14 Nemesis, 07.04.2010
    Zuletzt bearbeitet: 07.04.2010
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.168
    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«
     
  15. #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. Empfehlungen für ein Partitionsschema home server

    Empfehlungen für ein Partitionsschema home server: Hallo ihr, ich möchte Debian neu installieren und überlege, wie ich meine Festplatte am sinnvollsten partitioniere Nunja dabei mache ich immer...
  2. Daten für eine Homepage optimieren und verarbeiten?!

    Daten für eine Homepage optimieren und verarbeiten?!: Hi Ihr wisst ja sicher es gibt viele offene Daten die von der Regierung kostenlos zur Verfügung gestellt werden darunter auch "echt zeit daten"....
  3. [gelöst] - for file in ... nur für bestimmte Endungen?

    [gelöst] - for file in ... nur für bestimmte Endungen?: Hallo Zusammen Ich habe einen eigenen Server und das Ziel mittels einem Shell-Skript ein Verzeichnis auf neue Dateien zu überprüfen. Das Skript...
  4. Erweiterbarer Wrapper für GNU find

    Erweiterbarer Wrapper für GNU find: Hallo zusammen, Da ich hier noch einen Account habe, wollte ich mal dieses Forum nutzen, um ganz dreist ein wenig Eigenwerbung zu machen :) Ich...
  5. Suche erweiterbare Audio-APP für 768kHz

    Suche erweiterbare Audio-APP für 768kHz: Kennt jemand eine OS audio APP für den PC, welche höhere Bitraten unterstützt, bzw. die man entsprechend erweitern könnte? Auf dem WIN-Markt habe...