die 1000 Frage: register_globals

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

  • die 1000 Frage: register_globals

    Hallo zusammen!

    PHP ist nun wahrlich nicht mein Spezialgebiet, ich wurschtel mich halt so durch und bin entsprechend um ein bisschen Anregung und Hilfestellung sehr dankbar.

    Mein Problem ist register_globals - ja, es gibt zig tausend Googleergebnisse dazu, aber so richtig klar komme ich damit noch nicht - sind für mich eben doch alles böhmiche Dörfer...



    In der URL werden div. Variablen übermittelt, die dann verarbeitet werden.

    Bisher sieht das bei mir so aus (register sind ON):
    PHP-Code:
    if ($n=="1") {
    ....
    if ((
    $s=="") AND ($werbung=="")) {
    $s="start2";

    bei off dann so?

    PHP-Code:
     
    if ($_GET['n']=="1") {
    ....
    if ((
    $_GET['s']=="") AND ($_GET['werbung']=="")) {
    $s="start2";

    ist das so richtig?

    Betrifft die Deaktivierung der Register_Globals nur die Behandlung der Vars in den URLs, oder gibt es noch weitere Punkte auf die achten muss?
    Wieso wird dadurch die Sicherheit erhöht?

    Gruß,
    die Sabine

  • #2
    Zitat von lonewolf300 Beitrag anzeigen
    HBetrifft die Deaktivierung der Register_Globals nur die Behandlung der Vars in den URLs, oder gibt es noch weitere Punkte auf die achten muss?
    Ja, es betrifft auch Werte in der Session und in Cookies.

    Zitat von lonewolf300 Beitrag anzeigen
    Wieso wird dadurch die Sicherheit erhöht?
    Beispiel:
    PHP-Code:
    if ($passwort == 'supergeheimespasswort') {
        
    $darf_alles true;
    }

    if (
    $darf_alles) {
        
    zeig_alle_geheimen_daten();

    Würde hier jemand bei aktivierten Register Globals "?darf_alles=1" an die URL anhängen, könnte er ohne Eingabe des Passworts den geheimen Inhalt sehen.

    Aber warum machst du dir über Register Globals überhaupt Gedanken? Das wird schon ewig nicht mehr verwendet und sollte auf jedem halbwegs seriösen Server standardmäßig deaktiviert sein. Wenn du PHP neu lernst, kannst du um Register Globals einen großen Bogen machen. Das brauchst du nicht und wirst du nie brauchen. Außerdem wird diese Funktion früher oder später ganz abgeschafft.
    Zuletzt geändert von h3ll; 27.01.2011, 16:28.

    Kommentar


    • #3
      Hallo,

      Danke für deine Antwort!

      Meine Homepage ist von der Hintergrundtechnik ~ aus 2004, und ich hatte damals die Register_Globals nicht so beachtet. Bin jetzt auf diese Problematik aufmerksam geworden, da auf dem Server ein CMS mit installiert werden soll und das auf R_G=Off besteht - nur geht dann meine Homepage nicht mehr...

      wäre denn das was ich zusammen gecoded habe korrekt?

      Kommentar


      • #4
        Die drei Zeilen schauen korrekt aus, vorausgesetzt, du erwartest die Werte wirklich als GET-Parameter. Du solltest noch zusätzlich vorher mit isset() prüfen, ob die Werte wirklich existieren, weil sie sonst eventuell Fehlermeldungen der Stufe Notice auslösen.

        Kommentar


        • #5
          wie könnte ich denn sonst noch die Variablen aus der URL dem Script übergeben? (also ausser als mit Get)

          Kommentar


          • #6
            Zitat von lonewolf300 Beitrag anzeigen
            wie könnte ich denn sonst noch die Variablen aus der URL dem Script übergeben? (also ausser als mit Get)
            Du könntest sie aus $_SERVER['REQUEST_URI'] auslesen. Ist aber sehr unüblich und unnötig umständlich. $_GET ist die beste Methode.

            Kommentar

            Lädt...
            X