kostenloser Webspace werbefrei: lima-city


Frage zu register globals

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    b****r

    Hi Leute.

    Nachdem ich schon seit längerem weiß das register globals mit php6 nicht mehr existieren, wollte ich einmal nachfragen wie ich an variablen komme die am dateinamen angehängt sind.

    Habe mich dazu schon schlau gemacht und aber sicher bin ich mir nicht.

    Fall 1:
    globals sind off:

    <a href = "news.php?id=5" target = "_blank">News 5</a>


    um an "id" rankommen zu können muss ich sie mit
    $id = $_GET['id'];

    holen.
    richtig?


    Fall 2:
    globals off:
    ich hab ein script das die variable "$test_var" verwendet.
    user gibt in die adresszeile "www.example.com/test.php?test_var=schaedlicher_code" ein.
    bei globals on würde der mir dadurch meine eigene variable "zerstören". bei globals off nicht. stimmts?

    Zum abschluss: danke ich gleich mal für die Hilfe. Post variablen muss mir keiner erklären die sind sonnenklar nur war ich verwirrt weil ich dachte das durch globals off alle links wie link.php?page=news&id=5 nicht mehr funktionieren würden. Wenn man sie allerdings trotzdem noch mit $_GET holen kann bin ich beruhigt.
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Richtig.
    Register_globals bezieht sich übrigens nicht nur auf $_GET, sondern auch auf $_POST, $_COOKIE, $_ENV, etc.
  4. bei globals on würde der mir dadurch meine eigene variable "zerstören". bei globals off nicht. stimmts?

    Nein. Schadcode bleibt Schadcode, egal ob register_globals on oder off sind. Du musst jeden Code, der irgendwie von "außen" kommt, auf seine Konsistenz untersuchen, das hat nichts mit register_globals zu tun. Der Vorteil (oder wie auch immer) von ausgeschalteten globals ist, dass du die Variablen nochmal extra zuweisen musst und wenn du da eh schon dabei bist, knnst du sie auch grade noch sicher machen.
  5. Autor dieses Themas

    b****r


    bei globals on würde der mir dadurch meine eigene variable "zerstören". bei globals off nicht. stimmts?

    Nein. Schadcode bleibt Schadcode, egal ob register_globals on oder off sind. Du musst jeden Code, der irgendwie von "außen" kommt, auf seine Konsistenz untersuchen, das hat nichts mit register_globals zu tun. Der Vorteil (oder wie auch immer) von ausgeschalteten globals ist, dass du die Variablen nochmal extra zuweisen musst und wenn du da eh schon dabei bist, knnst du sie auch grade noch sicher machen.


    mit schaedlichen_code meinte ich eigentlich nicht code der mir wirklich schaden kann sondern einen falschen wert zb "?anzeigen=5" (wird erwartet) und der user gibt "?anzeigen=7" ein
  6. Beispiel (ja, grausam böser Code, nicht zur Nachahmung empfohlen):
    <?php
    
    if ($_SESSION['is_admin']) {
      $is_admin = true;
    }
    
    if ($is_admin) {
      // Zeige unheimlich geheimen Geheimcode.
    }
    
    ?>

    Mit register_globals könnte jeder über www.domain.de/?is_admin=true auf den Adminbereich zugreifen.

    Folgendes Beispiel wäre übrigens sicherer (im Sinne von: Variablen, die im Skript initialisiert werden, können so oder so nicht "zerstört" werden):
    <?php
    
    $is_admin = false;
    
    if ($_SESSION['is_admin']) {
      $is_admin = true;
    }
    
    if ($is_admin) {
      // Zeige unheimlich geheimen Geheimcode.
    }
    
    ?>

    Da hilft auch bei aktiviertem register_globals kein www.domain.de/?is_admin=true.

    Hoffe, damit wirds klarer und jeder weiß, worüber wir hier reden ;)
  7. 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!