include script & global registers

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

  • include script & global registers

    Hallo.

    Leider kenn ich mich nicht so gut aus mit php und habe ein problem mit einem script.
    Mußte bei meinen server die global register ändern und auf OFF stellen

    kurz zu meinem sys
    OS: Debian 4.0
    PHP: 4.4.4.8

    Problem ist einfach das mein include script für die homepage nicht mehr klappt da es auf Global Registers anscheinend braucht.

    Hier der code:

    PHP-Code:
    <?

    if(isset($action)) {

    $incfile = "inc/".$action.".php";
    if(file_exists($incfile)) { include($incfile);
    } else { 
    include("inc/error404.php"); 
    }

    } else { include("inc/welcome.php"); }

    ?>
    glaube wie man schnell erkennt gehts darum das wenn eine datei angesprochen wird die vorhanden ist, diese automatsich includet wird.

    würde so aussehn:
    http://meinserver.com/index.php?action=news

    somit wird die news.php aus dem directory inc includet.
    Ich bräuche nun das selbige nur so das es mit global registers off auch geht. Bitte um hilfe.


    mfg mystic

  • #2
    Hallo,

    hier der Code.

    PHP-Code:
    <?
    if(isset($_GET["action"])) {
        $incfile = "inc/".$_GET["action"].".php";
        if(file_exists($incfile)) { 
            include($incfile);
        } else { 
            include("inc/error404.php"); 
        }
    } else { 
        include("inc/welcome.php"); 
    }
    ?>
    mfg. Nico
    Webspace , Php

    Kommentar


    • #3
      wow VIELEN DANKE

      Kommentar


      • #4
        Hi.
        Ich hab da noch ne Frage, für manche vielleicht banal aber ich hoffe ihr könnt mir trotzdem weiterhelfen

        Also verstanden hab ich ja, dass wenn man einen Link mit Variable übergibt wie
        http://meinserver.com/index.php?action=news
        würde bei global on $action funktionieren
        bei global off muss man $_GET["action"] verwenden (korrigiert mich bitte wenn ich mich täusche)

        Es soll ja sicherer sein, da gewisse Leute bei global on beispielsweise datei=../../../passwd schreiben könnten und somit an Daten rankommen.

        Oder $action = http://www.cheaten.de/hackscript.php

        wenn ich aber doch jetzt $_GET["action"] nutze, (abgesehen davon man würde jetzt nicht eine überprüfung machen ob die datei auf dem server vorhanden ist etc.) dann wird das doch genauso ausgefühlt wie bei $action, also bei global on oder off eigtl gleich? oder bin ich da jetzt total durcheinander gekommen?

        Kommentar


        • #5
          Es soll ja sicherer sein, da gewisse Leute bei global on beispielsweise datei=../../../passwd schreiben könnten und somit an Daten rankommen.
          Global oder nicht so ein Schrottpfad kann man dir in jedem Fall angeben. Da hängt es von der anschliessenden Prüfung ab, ob böse Zeitgenossen etwas erreichen oder nicht.
          Der entscheidende Vorteil von globals off ist folgender:
          Es können dir keine unerwarteten Vars in deinen Code eingeschleust werden.
          PHP-Code:
          if(isset($action){
            
          $bool true;
          }

          //viel mehr Code

          if($bool == true){
            echo 
          'Geheimer Code';

          Mit globals on gebe ich einfach einen URL Parameter Namens bool und Wert 1 an und sehe 'Geheimer Code' Ohne irgendeine Var Namens action verwendet zu haben.
          Bei globals off existieren die URL Parameter nur in $_GET und damit sind deine normalen Variabeln "geschützt"

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar

          Lädt...
          X