kostenloser Webspace werbefrei: lima-city


Ich find den Fehler nicht o.O

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    fiffi

    Kostenloser Webspace von fiffi

    fiffi hat kostenlosen Webspace.

    Hallo,ich wollt' grad mal ne Seite machen mit php include,wie ichs schon immer mache aber das funktioniert diesmal nicht...wennn man aufn navi punkt klickt öffnet sich das nicht o.O
    code:
    <style type="text/css">
    BODY {
    background: url('http://img259.imageshack.us/img259/2254/layoutwe1.jpg') ;
    background-repeat:no;
    color: #000000;
    line-height: 12px;
    font-family: tahoma;
    font-size: 10px;
    overflow: yes
    }
    font {
    color: #000000;
    font-family: tahoma;
    font-size: 10px;
    line-height: 9px;
    }
    b {
    color: #000000;
    letter-spacing:0,5px;
    }
    i {
    color: #000000;
    letter-spacing:1px;
    }
    u {
    color: #000000;
    letter-spacing:1px;
    }
    s {
    color: #000000;
    letter-spacing:0,5px;
    font-family:tahoma;
    font-size:10px
    }
    a {
    background: transparent;
    text-decoration: underline;
    color: #000000
    }
    A:hover {
    background: transparent;
    text-decoration: none;
    color: #000000;
    }
    TEXTAREA,INPUT {
    color: #000000;
    background-color: transparent;
    font-family: tahoma;
    font-size: 10px;
    border: 1px solid #000000,
    }
    .content {
    position: absolute;
    left: 390px;
    top: 470px;
    background: transparent;
    height: 411px;
    width: 363px;
    overflow: auto
    }
    .inhaltetable {
    width: 275px
    }
    .box { width: 15em; background: #8B1A1A;border:1px solid #000000;}
    .box h1, .box {margin: 0 10px;}
    .box h1 {font-size:150%; color:#ffffff; }
    .box .top, .box .bottom{display:block;background: #8B1A1A;}
    .box .top b, .box .bottom b
    {
    display:block;height: 1px; overflow: hidden; background: #8B1A1A;
    }
    .box .r1{margin: 0 5px;}
    .box .r2{margin: 0 3px;}
    .box .r3{margin: 0 2px;}
    .box .top .r4, .box .bottom .r4{margin: 0 1px;height: 2px;}
      </style>
    <div style="height: 351px; top: 118px; left: 132px; width: 302px;"
     class="content">
    <?php
    include("news.php");
    if (!$index){
    $index="news.php";}
    
    
    ?>
    <br>
    </div>
    
    <div
     style="position: absolute; height: 107px; width: 180px; top: 194px; left: 448px;"><br>
    <?php
    include("navi.php");
    ?>
    </div>
    >
    </body>
    </html>

    navi.php
    <br>
    <div class="box">
    <h1><a href="?index=news.php">News</a></h1><br>
    Hier kommen News hin.
    
    </div>
    <br><br>
    <div class="box"> 
      <h1><a href="?index=about.php">About</a>
      </h1> <br>
     Über dieses Seite & über mich.
    
    </div><br><br>
    <div class="box">
      <h1><a href="?index=stuff.php">Stuff</a></h1>
      <br>
    All Kind of Stuff &lt;3 
    <b class="bottom">
    </b></div>
    <br>
    <br>
    <div class="box">
    <h1><a href="?index=gb.php">Gästebuch</a></h1><br>
    Maaaains : D 
    <b class="bottom">
    </b></div>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Ich verstehe deine Methodik nicht ganz...

    Ersteinmal musst du, wenn du einen Wert per GET übergibst, diesen auch auslesen und in eine Variable schreiben ($index = $_GET['index']).
    Der Fehler liegt darin, dass du eine Seite (news.php) includest und danach nichts passiert. Die Seite wird nur includet...

    Dein PHP-Teil müsste korrekterweise so aussehen:
    <?
    $index = ($_GET['index']) ? $_GET['index'] : "news.php";
    include($index);
    ?>


    Es ist übrigens optisch besser, die Dateiendung nicht mit in dei URL zu schreiben.
    Übergib also in der navi.php statt "?index=stuff.php" nur "?index=stuff", das sieht besser aus. Die Endung hängst du später wieder an:

    <?
    $index = ($_GET['index']) ? $_GET['index'] : "news";
    include($index.".php");
    ?>




    gruß
    ferdinand24
  4. Nur mal so nebenbei ... ich würde generell keine Dateinamen per GET übergeben. Was passiert nämlich wenn ein User (Angreifer) irgend eine andere Datei in die Url schreibt? ...diese wird ausgeführt!!!

    Und es kommt noch schlimmer... mit bestimmten PHP Konfigurationen ist es sogar möglich dort eine Url zu einem eigenen Server des Angreifers anzugeben. Was passiert ist klar... die PHP-Datei des Angreifers wird auf deinem Server (Webseite) ausgeführt und das ist nicht unbedingt prickelnd ;-)

    Lösung:
    Inkludiere die Dateien immer fest. Verwende Funktionen, die dein Code ausführen. Verzweige immer nur per Get/Post zu den Funktionen, die benötigt werden. Das macht deine Seite schnell und sicher ;-)

    Grüße
  5. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!