Umgehen des Passwortschutzes verhindern?

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

  • #16
    Zitat von Alpha0493 Beitrag anzeigen
    Kann den das php-script dann noch ohne probleme auf den ordner zugreifen wenn ich ihn mit "htaccess Verzeichnisschutz" versehe?
    wenn das geht wäre das eine super möglichkeit
    Da die htaccess-Regeln nur die Zugriffe über den Webserver betreffen, gelten die Regeln für PHP natürlich nicht.

    Aber die sauberere Lösung wäre trotzdem, die Dateien außerhalb des Document Roots zu lagern.

    Zitat von Alpha0493 Beitrag anzeigen
    hmm ich benutze zur zeit nur einen kostenlosen server auf cwsurf.de un da habe ich nur zugriff auf ein verzeichnis in welchem sich standarmäßig die ordner "bot", "botconfig" und "useragent" befinden
    bisher habe ich meine dateien einfach nur in das selbe verzeichnis gespeichert
    soll ich nun verher noch einen root ordner anlegen? oder ist auf dem server ein unerreichbarer ordner nicht realisierbar?
    Üblicherweise hat man auch außerhalb des Document Roots Zugriff. Einerseits weil es eben viele Applikationen gibt, die Daten außerhalb des Document Roots lagern, andererseits weil dort auch oft Log-Dateien und andere relevante Dateien für den Webmaster liegen. Ein Webspace, der sowas nicht bietet, ist zum Vergessen und in meinen Augen unbrauchbar.

    Zitat von Alpha0493 Beitrag anzeigen
    bei login.php sieht nun wie folgt aus
    Wie bereits gesagt, _nach_ der Abfrage bringt mysql_real_escape_string überhaupt nichts mehr. Es muss in die Abfrage eingebaut werden, und nicht einfach angehängt. Aber du könntest dich ja selber informieren, was mysql_real_escape_string überhaupt macht, dann solltest du ja selber drauf kommen, dass das so keinen Sinn ergeben kann.

    Kommentar


    • #17
      Zitat von Alpha0493 Beitrag anzeigen
      kann ich das einfach mit in ein html-dokument schreiben?
      PHP in html geht nicht, du musst dann schon den Inhalt der news.html durch PHP uasgeben lassen, dann kannst du ganz einfach oben in der PHP-Datei die Prüfung vornehmen lassen, dann brauchst du auch kein .htaccess.
      *winks*
      Gilbert
      ------------------------------------------------
      Hilfe für eine Vielzahl von Problemen!!!
      http://www.1st-rootserver.de/

      Kommentar


      • #18
        so jetzt aber
        PHP-Code:
        <?php 
        session_start
        (); 
        ?> 

        <?php 
        $verbindung 
        mysql_connect("xxxxx""xxxx" "xxxxx"
        or die(
        "Verbindung zur Datenbank konnte nicht hergestellt werden"); 
        mysql_select_db("xxxxx") or die ("Datenbank konnte nicht ausgewählt werden"); 

        $username $_POST["username"]; 
        $passwort md5($_POST["password"]);
        $hostname $_SERVER['HTTP_HOST'];
        $path dirname($_SERVER['PHP_SELF']); 

        $abfrage sprintf ("SELECT username, passwort FROM login WHERE username = '$username' LIMIT 1"mysql_real_escape_string($username),mysql_real_escape_string($passwort));
        $ergebnis mysql_query($abfrage); 
        $row mysql_fetch_object($ergebnis); 

        if(
        $row->passwort == $passwort
            { 
            
        $_SESSION["username"] = $username
            
        header('Location: http://'.$hostname.($path == '/' '' $path).'/deliver_page.php?page=News'); 
            } 
        else 
            { 
            
        header('Location: http://'.$hostname.($path == '/' '' $path).'/index.html'); 
            } 
        ?>
        @ wotan wäre das dann sowas wie die geheim.php die ich vorher schoneinmal postete?
        PHP-Code:
        <?php  
        session_start
        ();  
        ?>  
        <?php  
        $hostname 
        $_SERVER['HTTP_HOST']; 
        $path dirname($_SERVER['PHP_SELF']);  

        if(!isset(
        $_SESSION["username"]))  
           {  
           echo 
        "Bitte erst <a href=\"index.html\">einloggen</a>"; }  
           else {
        header('Location: http://'.$hostname.($path == '/' '' $path).'/News.html');}      
        ?>

        Kommentar


        • #19
          Auch jetzt noch nicht.
          Wir werden alle sterben

          Kommentar


          • #20
            hmm jetzt bin ich ratlos
            stand so auf php.net
            kannst du mir sagen wie es richtig wäre?

            Kommentar


            • #21
              stand so auf php.net
              Sehe ich nicht.
              Glaube ich nicht!
              Mache es so, wie es auf php.net steht.
              Wir werden alle sterben

              Kommentar


              • #22
                PHP-Code:
                <?php 
                session_start
                (); 
                $verbindung mysql_connect'xxxxx''xxxx' 'xxxxx' ) or die( 'Verbindung zur Datenbank konnte nicht hergestellt werden' ); 
                mysql_select_db'xxxxx' ) or die( 'Datenbank konnte nicht ausgewählt werden' ); 
                $hostname $_SERVER['HTTP_HOST'];
                $path dirname$_SERVER['PHP_SELF'] ); 
                $abfrage =    "    SELECT
                                username,
                                passwort 
                            FROM login 
                            WHERE ( username = '"
                .mysql_real_escape_string$_POST['username'] )."' 
                                AND passwort = '"
                .mysql_real_escape_stringmd5$_POST['passwort'] ) )."' )
                        "
                ;
                $ergebnis mysql_query$abfrage )or die( 'Fehler => '.mysql_error() ); 
                $row mysql_fetch_object$ergebnis );
                $num mysql_num_rows$ergebnis );
                if( 
                $num == ) { 
                    
                $_SESSION['username'] = $row->username
                    
                header'Location: http://'.$hostname.( $path == '/' '' $path ).'/deliver_page.php?page=News' ); 
                } else { 
                    
                header'Location: http://'.$hostname.( $path == '/' '' $path ).'/index.html' ); 
                }
                ?>
                PHP-Code:
                <?php  
                session_start
                ();  
                $hostname $_SERVER['HTTP_HOST']; 
                $path dirname$_SERVER['PHP_SELF'] );  
                if( !isset( 
                $_SESSION['username'] ) ) {  
                    echo 
                'Bitte erst <a href="index.html">einloggen</a>';
                } else {
                    
                header'Location: http://'.$hostname.( $path == '/' '' $path ).'/News.html' );
                }
                ?>
                Nein ist es nicht, anstatt der Endung .html schreibbst du erstmal .php und dann bearbeitest du die news.php noch soweit, das du als erstes prüfst, ob die Session vorhanden ist. Somit entfällt eigentlich dein Script, ich gehe mal davon aus das das Script deliver_page.php, da du nun die news.php direkt anspringen kannst und entsprechend den Status(Eingeloggt) dort reagieren kannst.
                *winks*
                Gilbert
                ------------------------------------------------
                Hilfe für eine Vielzahl von Problemen!!!
                http://www.1st-rootserver.de/

                Kommentar


                • #23
                  ok funktioniert wunderbar

                  vielen dank für eure hilfe

                  echt ein super forum

                  Kommentar


                  • #24
                    Um das ganze jetzt erst mal etwas verständlicher zu machen.

                    index.html
                    Code:
                    <form action="check.php" method="post">
                    	Username <input type="text" name="username" /><br />
                    	Passwort <input type="password" name="passwort" /><br />
                    	<input type="submit" value="einloggen">
                    </form>
                    check.php
                    PHP-Code:
                    <?php 
                    session_start
                    (); 
                    $verbindung mysql_connect'xxxxx''xxxx' 'xxxxx' ) or die( 'Verbindung zur Datenbank konnte nicht hergestellt werden' ); 
                    mysql_select_db'xxxxx' ) or die( 'Datenbank konnte nicht ausgewählt werden' ); 
                    $SQL =    "    SELECT
                                username,
                                passwort 
                            FROM login 
                            WHERE ( username = '"
                    .mysql_real_escape_string$_POST['username'] )."' 
                                AND passwort = '"
                    .mysql_real_escape_stringmd5$_POST['passwort'] ) )."' )
                        "
                    ;
                    $res mysql_query$SQL )or die( 'Fehler => '.mysql_error() ); 
                    $num mysql_num_rows$res );
                    if( 
                    $num == ) { 
                        
                    $row mysql_fetch_assoc$res );
                        
                    $_SESSION['username'] = $row['username'];
                        include 
                    'news.php';
                    } else { 
                        
                    header'Location: index.html' ); 
                    }
                    ?>
                    news.php
                    PHP-Code:
                    <?php 
                    session_start
                    ();
                    if( isset( 
                    $_SESSION['username'] ) AND $_SESSION['username'] != NULL ) {
                        echo 
                    'Hier kommt die Ausgabe deiner News hin';
                    } else {
                        
                    header'Location: index.html' );
                        unset( 
                    $_SESSION );
                    }
                    ?>
                    Somit kannst du jetzt die news.html löschen und trägst den Inhalt einfach in die news.php ein. Statt den Inhalt per echo auszugeben kannst du auch einfach ein include() machen, du solltest dann aber vorher prüfen, ob die Datei vorhanden ist und nur dann auch ausgeben.
                    Zuletzt geändert von Wotan; 07.12.2011, 11:09.
                    *winks*
                    Gilbert
                    ------------------------------------------------
                    Hilfe für eine Vielzahl von Problemen!!!
                    http://www.1st-rootserver.de/

                    Kommentar


                    • #25
                      kann ich nicht einfach die News.html in News.php umbenennen, den inhalt drin stehen lassen und am anfang der News.php prüfen lassen ob man schon eingelogt ist :
                      PHP-Code:
                      <?php   
                      session_start
                      ();   
                      $hostname $_SERVER['HTTP_HOST'];  
                      $path dirname$_SERVER['PHP_SELF'] );   
                      if( !isset( 
                      $_SESSION['username'] ) ) {   
                           
                      header'Location: http://'.$hostname.( $path == '/' '' $path ).'/index.html' ); 

                      ?>
                      Wenn man nicht eingelogt ist gehts zurück zur index.html
                      und wenn man eingelogt ist wird News.php dargestellt

                      Geht doch so auch oder?

                      Kommentar


                      • #26
                        Mach es dir nicht umständlicher als es ist. Schau dir noch mal die drei Script von mir an, dort sollte es für dich verständlich dargestellt sein.
                        *winks*
                        Gilbert
                        ------------------------------------------------
                        Hilfe für eine Vielzahl von Problemen!!!
                        http://www.1st-rootserver.de/

                        Kommentar


                        • #27
                          im prinzip habe ich es ja so gemacht wie du es beschrieben hast,
                          nur habe ich den inhalt direkt unter das php-script eingefügt und nicht nocheinmal extra durch include oder ähnliches aufrufen lassen, weil dann hätte ich ja wieder das problem wie vorher, dass ich diese seite auch einfach ohne die ganze passwortsache erreichen kann, da auf dem zur zeit von mir genutztem webspace ein für html unerreicharer bereich nicht realisierbar ist

                          Kommentar


                          • #28
                            Eben nicht, den woher soll der User wissen, welche Seite dort angezeigt wird, er sieht nur in der Adressezeile
                            Code:
                            http://deine-domain.tld/check.php
                            Er sieht dort die news.php nicht.
                            Mit meiner Vorlagen kannst du so noch weitere Ausgaben und gesamte Loginbereiche erstellen, die dann nur eingeloggten Usern zur Verfügung stehen. Die Ausgabe Seiten kannst du dann ganz einfach aus einer Datenbank holen oder aber der check.php einfach mit übergeben.
                            *winks*
                            Gilbert
                            ------------------------------------------------
                            Hilfe für eine Vielzahl von Problemen!!!
                            http://www.1st-rootserver.de/

                            Kommentar


                            • #29
                              ok jetzt hab ich es verstanden
                              dieser zusammenhang war mir vorher nicht bewusst

                              habs jetzt so wie du es vorgeschlagen hast

                              es wird als adresse News.php angeseigt aber News.html wird dargestellt auf grund der include funktion

                              also nochmal vielen Dank

                              Kommentar


                              • #30
                                Mir ist gerade noch ein Fehler in den Vorlagen aufgefallen, dort hatte ich nach dem erfolgreichen Einloggen ein Header() gemacht statt einem include(). So sollte es jetzt richtig sein, schau es dir einfach nochmal an.
                                *winks*
                                Gilbert
                                ------------------------------------------------
                                Hilfe für eine Vielzahl von Problemen!!!
                                http://www.1st-rootserver.de/

                                Kommentar

                                Lädt...
                                X