"geschütze files" lassen sich direkt über adresszeile öffnen

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

  • "geschütze files" lassen sich direkt über adresszeile öffnen

    Servus !

    wie o.g. lassen sich "geschützte fieles" - mrhappiness tut - bei direkter pfadangabe in der adresszeile öffnen.

    Wie kann ich das denn verhindern oder was fehlt noch !?

    bilder_login.php

    PHP-Code:
    <?
    session_start();
    include 'sessionhelpers.inc.php';
    ?>
    <html>
    <head>
    <title>ubilder</title>
    <LINK rel="stylesheet" type="text/css"  href="../formate.css">
    </head>
    <body topmargin="5" rightmargin="0" class=bgcolor onLoad="document.login.username.focus()">
    <table width="100%" border="0" cellspacing="0" cellpadding="10" class=text>

    <?
    if (isset($_POST['login']))   //wenn userid erhalten login ok ansonsten false
    {
        $userid=check_user($_POST['username'], $_POST['userpass']);
        if ($userid!=false)
                login($userid);
        else
             echo '<EMBED SRC="../sounds/dukommsthiernichtrein.wav" HIDDEN="TRUE" AUTOSTART="true"          MASTERSOUND NAME="sound">
             <tr>
                <td colspan="2">Zugriff hat nur wer registriert ist !</td>
             </tr>';
    }
    if (!logged_in())              //wenn nicht eingeloggt Formular anzeigen ansonsten datei öffnen
       echo '<form name="login" method="post" action="bilder_login.php">
       <tr >
           <th colspan="2" class=ueberschrift><h1>Hier findet ihr mein Fotoalbum</h1><br></th>
       </tr>
       <tr>
           <tr>
              <td>Benutzername:</td>
         <td width="1000"><input name="username" type="text" size="30"></td>
           </tr>
           <tr>
              <td>Passwort:</td>
         <td width="1000"><input name="userpass" type="password" size="30" id"userpass"></td>
           </tr>
           <tr>
              <td>Klick it ->></td>
              <td><input name="login" type="submit" id="login" value="Einloggen"></td>
           </tr>
       </tr>
       </form>';
    else
    include("bilder.php");
    echo '<script>parent.frames[2].location.href="leer.htm"</script>';
    ?>
    </table>
    </body>
    </html>

    bilder.php

    PHP-Code:
    <?
    session_start();
    ?>
    <html>
    <head>
    <title>Bilder</title>
    <LINK rel="stylesheet" type="text/css"  href="../formate.css">
    <SCRIPT LANGUAGE="JavaScript">
      <!--
       function ZweiFrames(URL1, FrameNr1,URL2,FrameNr2)
      {
          parent.frames[FrameNr1].location.href=URL1;
          parent.frames[FrameNr2].location.href=URL2;
       }
       //-->
       </SCRIPT>
    </head>
    <body topmargin="5" rightmargin="0" class=bgcolor>
    <EMBED SRC="../sounds/willkommen.wav" HIDDEN="TRUE" AUTOSTART="true" MASTERSOUND NAME="sound2">
    <table width="100%" border="0" cellspacing="0" cellpadding="10">
      <tr>
        <th colspan="2" class=ueberschrift><h1>Hier findet ihr mein Fotoalbum sortiert nach Jahren</h1>
        </th>
      </tr>
      <tr>
         <th class=navigation>
         <a href="javascript:ZweiFrames('bilder_oben.htm',2,'bilder2003_unten.php',3)">2003</a>
         </th>
      </tr>
      <tr>
         <th class=navigation>
         <a href="javascript:ZweiFrames('bilder_oben.htm',2,'bilder2004_unten.php',3)">2004</a>
         </th>
      </tr>
        <!--<td>
          <a href="logout.php">Ausloggen</a>
        </td>-->
    </tr>
    </table>
    </body>
    </html>


    wer kann helfen ???

  • #2
    und wie hast du die bilder geschützt?

    *verschieb* zu tutorials-

    Kommentar


    • #3
      OK, das is die nächste frage

      formulier's mal anders wie können alle in diesem verzeichnis liegenden files vor direktem zugriff geschützt werden ?

      Kommentar


      • #4
        htaccess-schutz

        Kommentar


        • #5
          und damit lässt sich z.b. bei solchen eingaben in die adresszeile wie
          http://www. hompage.de/meinebilder/bilder.php
          oder
          http://www. hompage.de/meinebilder/bilder/bild.jpg

          die jeweilige datei nicht mehr öffnen?

          Lässt sich also definitiv nicht mit php schützen ?

          - also wieder mal wat neues

          Kommentar


          • #6
            du kannst ein bild welcher unter

            http://www.home page.de/bilder/img992.jpg

            ist direkt nicht schützen.

            was du machen kannst, ist die bilder in ein verzeichnis laden, auf das normale user kein zugriff haben (z.b. außerhalb webroot oder htaccess). dann musst du das bild über ein file aufrufen. z.b. showbild.php?image=img992.jpg

            wie das geht steht im forum.

            Kommentar


            • #7
              ja schön oder ehr weniger schön

              gilt jetzt aber auch für andere files wie eben .php .htm und andere, die hinter dem geschützen bereich liegen oder doch nich !?

              *einallerletztesmalnerventut*

              Kommentar


              • #8
                auf php-files kannst du wunderbar

                if(logged_in())

                anwenden.

                bei HTML-Dateien müsstest du darauf achten, dass die duch den PHP-Interpreter geparst werden.

                Kommentar


                • #9
                  versteh ich dich richtig, dann muss dieser "login check"
                  EDIT:
                  auf jeder site
                  stehen um den aufruf der jeweiligen site über die adresszeile zu verhindern !?

                  kann ich nich ganz nachvollziehn
                  Zuletzt geändert von Clubingman; 28.03.2004, 16:11.

                  Kommentar


                  • #10
                    richtig!

                    Kommentar


                    • #11
                      hab das mal so eingetragen

                      bin nicht eingeloggt aber,
                      datei wird über adresszeile trotzdem geöffnet

                      wo liegt hier der fehler?

                      bilder.php

                      PHP-Code:
                      <?
                      session_start();
                      include 'sessionhelpers.inc.php';
                      ?>

                      <html>
                      <head>
                      <title>Bilder</title>
                      <LINK rel="stylesheet" type="text/css"  href="../formate.css">
                      <SCRIPT LANGUAGE="JavaScript">
                        <!--
                         function ZweiFrames(URL1, FrameNr1,URL2,FrameNr2)
                        {
                            parent.frames[FrameNr1].location.href=URL1;
                            parent.frames[FrameNr2].location.href=URL2;
                         }
                         //-->
                         </SCRIPT>
                      </head>
                      <body topmargin="5" rightmargin="0" class=bgcolor>
                      <table width="100%" border="0" cellspacing="0" cellpadding="10">

                      <?
                      if(logged_in())
                      echo  '<tr>
                          <th colspan="2" class=ueberschrift><h1>Hier findet ihr mein Fotoalbum sortiert nach Jahren</h1>
                          </th>
                        </tr>
                        <tr>
                           <th class=navigation>
                           <a href="javascript:ZweiFrames('bilder_oben.htm',2,'bilder2003_unten.php',3)">2003</a>
                           </th>
                        </tr>
                        <tr>
                           <th class=navigation>
                           <a href="javascript:ZweiFrames('bilder_oben.htm',2,'bilder2004_unten.php',3)">2004</a>
                           </th>
                        </tr>
                          <!--<td>
                            <a href="logout.php">Ausloggen</a>
                          </td>-->
                      </tr>';
                      ?>

                      </table>
                      </body>
                      </html>
                      sessionhelpers.inc.php

                      PHP-Code:
                      <?
                      function connect()               //Verbindung zur DB
                      {
                          $con= mysql_connect('localhost','root','') or die(mysql_error());
                           mysql_select_db('hp',$con) or die(mysql_error());
                      }

                      /* function connect()                   ------für Internet------
                      {
                          $con= mysql_connect('localhost','web811','firsthp') or die(mysql_error());
                           mysql_select_db('usr_web811_1',$con) or die(mysql_error());
                      } */


                      function check_user($name, $pass)      //prüft Eingabe
                      {
                          $sql="SELECT UserId
                          FROM users
                          WHERE UserName='".$name."' AND UserPass=MD5('".$pass."')
                          LIMIT 1";
                          //echo $sql;
                          $result= mysql_query($sql) or die(mysql_error());
                          if ( mysql_num_rows($result)==1)
                          {
                              $user=mysql_fetch_assoc($result);
                              return $user['UserId'];
                          }
                          else
                              return false;
                      }

                      function login($userid)                 //loggt User ein
                      {
                          $sql="UPDATE users
                          SET UserSession='".session_id()."'
                          WHERE UserId=".$userid;
                           mysql_query($sql);
                      }

                      function logged_in()                     //prüft ob User eingeloggt ist
                      {
                          $sql="SELECT UserId
                          FROM users
                          WHERE UserSession='".session_id()."'
                          LIMIT 1";
                          $result= mysql_query($sql);
                            return ( mysql_num_rows($result)==1);
                      }

                      function logout()                         //loggt User aus u. setzt session auf Null
                      {
                          $sql="UPDATE users
                          SET UserSession=NULL
                          WHERE UserSession='".session_id()."'";
                           mysql_query($sql);
                      }

                      connect();
                      ?>

                      Kommentar


                      • #12
                        so, habe jetzt folgendes ausprobiert

                        in bilder.php

                        am anfang:

                        PHP-Code:
                        <?
                        session_start();
                        include 'sessionhelpers.inc.php';
                        ?>
                        nach <table>

                        PHP-Code:
                        <?
                        if (!logged_in())
                        include ("logged_in.php")
                        ?>
                        und dann geht's weiter mit <tr> ...

                        bei direkten zugriff über adressleiste oder auch nach login kommt folgende fehlermeldung:

                        EDIT:
                        Fatal error: Cannot redeclare connect() in g:\homepage\test\sessionhelpers.inc.php on line 2


                        bin wieder für jeden hinweis dankbar !!!

                        Kommentar


                        • #13
                          such mal nach cannot redeclare (oder übersetz einfach)

                          Kommentar


                          • #14
                            hab's gefunden. datei zu oft mit include eingebunden.

                            andere frage:

                            kann mit dem befehl "die" auch eine datei aufgerufen werden.
                            In der referenz, dich ich hab, steht nur was von einer einfachen textausgabe wie z.b. die ("blabla");
                            meine versuche gingen daneben

                            Kommentar


                            • #15
                              wenn deine referenz das manual ist (wie es sein solle), dann wird wohl stimmen, was da steht.

                              Kommentar

                              Lädt...
                              X