Daniel G: seite wird immer komplett geladen???

Hallo,

Ich habe in meiner Homepage einen Kopfteil sowie einen Fussteil Dazwischen befindet sich der Variable teil (alles in der index.php Datei):

<?php
$section = array();
$section['news'] = 'news.php';
$section['impressum'] = 'impressum.php';
$section['info'] = 'info.php';

if (isset($_GET['section'], $section[$_GET['section']])) {
    include $section[$_GET['section']];
} else {
    include $section['news'];
}
?>

Wenn ich nun einen Link mit index.php?section=info  einfüge und diesen anklicke dann wird die ganze Seite inklusive Kopf und Fussteil neu geladen und die Info Datei angezeigt. Was mache ich falsch? Ich will doch nur das der Variable teil wie bei einen iframe neu geladen wird und der Kopf- und Fussteil ganz normal angezeigt bleibt.

Mfg
Daniel

  1. Yerf!

    Wenn ich nun einen Link mit index.php?section=info  einfüge und diesen anklicke dann wird die ganze Seite inklusive Kopf und Fussteil neu geladen und die Info Datei angezeigt. Was mache ich falsch?

    Nichts. Das ist das normale Verhalten von Webseiten und soll so sein.

    Ich will doch nur das der Variable teil wie bei einen iframe neu geladen wird und der Kopf- und Fussteil ganz normal angezeigt bleibt.

    Wenn du dich einmal mit den Nachteilen von Frames beschäftigt hast und woher die rühren (eben genau daraus, das keine vollständigen Dokumente verschickt werden), dann wird dir das jetzige Verhalten gefallen. Außerdem dürfte der zusätzliche Traffic durch Kopf und Fuß kaum ins gewicht fallen.

    Zu den Nachteilen von Frames gibts hier im Archiv einiges zu finden.

    Gruß,

    Harlequin

    --
    <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
    1. OK! Dann werde ich es wohl so lassen...

      Trotzdem vielen Dank

      Daniel

  2. Hello,

    include $section[$_GET['section']];

    Die direkte Übernahme von POST- oder GET-Parametern in ein Include() solltest Du dringend unterlassen. Das kann man prima benutzten, um Deinen Server zu manipulieren. WEnn nun auch noch die fopen-wrappers  erlaubt sind  http://de.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen, dann steht dem Angreifer Tür und Tor offen.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hello,

      include $section[$_GET['section']];

      Die direkte Übernahme von POST- oder GET-Parametern in ein Include() solltest Du dringend unterlassen. Das kann man prima benutzten, um Deinen Server zu manipulieren. WEnn nun auch noch die fopen-wrappers  erlaubt sind  http://de.php.net/manual/en/filesystem.configuration.php#ini.allow-url-fopen, dann steht dem Angreifer Tür und Tor offen.

      Zu Deiner Ehrenrettung...

      So, wie Du es jetzt gemacht hast, also über den GET-Parameter aus einem Wertevorrat auszuwählen, bannt diese Gefahr natürlich. Ich hätte die Brille also vorher aufsetzen müssen.

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de