[Variablen] PHP5: Variablen auf andere Seite übermitteln geht nicht

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

  • #16
    Hmm und wie soll ich es sonst regeln?

    Welchen Sinn hat es, wenn ich

    uservariable --> zweitevariable

    Wie soll ich sonst etwas über die URL übermitteln OHNE dass es sichtbar wird.

    Kommentar


    • #17
      Wie soll ich sonst etwas über die URL übermitteln OHNE dass es sichtbar wird.
      Wo sichtbar wird? Bzw wo soll es nicht sichtbar sein? Was du via URL übergibst ist immer sichtbar für den Client und den Server...
      Wieso speicherst du die $_GET Var auf eine eigene Var??
      PHP-Code:
      if(isset($_GET['v']) && $_GET['v'] == ' deinWert'
      reicht doch völlig aus.

      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


      • #18
        Original geschrieben von jahlives
        Wo sichtbar wird? Bzw wo soll es nicht sichtbar sein? Was du via URL übergibst ist immer sichtbar für den Client und den Server...
        Wieso speicherst du die $_GET Var auf eine eigene Var??
        PHP-Code:
        if(isset($_GET['v']) && $_GET['v'] == ' deinWert'
        reicht doch völlig aus.

        Gruss

        tobi
        Hi Tobi,

        ok - du meinst, ich brauche die Variable, die ich hier auslese, quasi garnicht in eine weiter speichern bzw. übergeben?


        Aber so wie ich H2O verstehe, bleibt das ja sonst ein Risiko.

        Ich checke es daher nicht, weil doch der potentielle Angreifer weiterhin über die URL rumspielen kann und weiterhin meine möglichen Variablen manipulieren kann, immerhin hat sich in meinen Augen ja nur geändert, dass ich statt zuzvor, die Variable direkt auszulesen, sie nun erst prüfe, woher sie kommt, von GET, POST.....aber das nutzt doch nicht wirklich gegen Manipulation ??

        Kommentar


        • #19
          Original geschrieben von der_milchmann
          Welchen Sinn hat es, wenn ich
          uservariable --> zweitevariable
          Keinen! Du wirst doch nicht den Benutzer bestimmen lassen, was du ausgeben willst. Wenn du eine Variable dazu brauchst, dann nimm z.B. $x, aber nur wenn kein Parameter $_GET['x'] existiert. Das ist ja genau der Sinn, dass der Benutzer nicht mehr beliebige Variablen übergeben kann, sondern nur noch solche, die du auch haben willst.
          Gruss
          H2O

          Kommentar


          • #20
            Original geschrieben von H2O
            Keinen! Du wirst doch nicht den Benutzer bestimmen lassen, was du ausgeben willst. Wenn du eine Variable dazu brauchst, dann nimm z.B. $x, aber nur wenn kein Parameter $_GET['x'] existiert. Das ist ja genau der Sinn, dass der Benutzer nicht mehr beliebige Variablen übergeben kann, sondern nur noch solche, die du auch haben willst.

            Ok - das macht natürlich Sinn, aber ....

            wenn meine Seite wie folgt vorgesehen ist, und ich nur eine Variable zulasse:

            meineseite.php?einzige_variable=Wert

            Also meine Scripte sind nicht so eingerichtet, dass der User X-Beliebige Variablen hinten anhängen kann, die dann im Script verarbeitet werden, beispielsweise wäre das hier unwirksam:

            meineseite.php?einzige_variable=Wert&noch_eine_vom_Angreifer=angriff


            Lediglich bei "einzige_variable" kann der User natürlich alle möglichen Werte probieren, manuell einzugeben.


            Daher frage ich mich, ob es bei meinen Scripten überhaupt Sinn macht, Globals zu deaktivieren, da ich sowieso keinerlei andere Variablen zulasse. Und selbst bei register_globals=off kann ja der Angreifer dennoch alle möglichen Werte ausprobieren bei meiner einzigen zugelassenen Variable.

            Kommentar


            • #21
              Ich bin mir nicht sicher, ob du überhaupt begreifen willst. Natürlich kann der Benutzer beliebige Werte eingeben:
              Code:
              meineseite.php?einzige_variable=Wert&x=7&y=löschen
              Aber damir definiert er eben keine Variable $x und keine Variable $y, sondern nur Variablen im globalen Array $_GET. Und es bleibt dann dir überlassen, was du damit machst. Aber wenn du im Script irgendwo eine Variable $x verwendest, kann der Benutzer diese nicht ändern.
              Gruss
              H2O

              Kommentar


              • #22
                Immer noch nicht verstanden?
                meineseite.php?einzige_variable=Wert&noch_eine_vom_Angreifer=angriff
                Und wenn der böse User rauskriegt, dass du in deinem Script eine Var login hast. Dann übergibt er einfach login (und glaube mir PHP wird das verarbeiten)
                Erst wenn du ganz sauber programmierst, dann sind register_globals() on kein Problem mehr. Dh typensichere Vergleiche, JEDE Var initialisieren etc ppt...

                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


                • #23
                  Ok - so langsam begreife ich!

                  Selbst wenn ich nur x als Variable verwende, die mir Werte übermittelt über die URL, kann es ja sein, dass ich "irgendwo" im Script die Variable z und y zusätzlich in ganz ganz anderem Zusammenhang verwende und ihr meintet jetzt, wenn das der Angreifer rausbekommt, wie auch immer - kann er meine Seite darüber steuern. Und zwar indem er einfach dieses anhängt....etwa so:

                  statt offiziell:

                  seite.php?x=einzige_variable

                  seite.php?x=einzige_Variable&y=variable_vom_angreifer&z=noch_eine_Angreifervariable

                  So hab ich das jetzt richtig kapiert?

                  Und per register_globals = off würde diese Variable y, die mir da der potentielle Angreifer eigenmächtig dranhängt, würde auf MEINE tatsächlich im Script verwendete Variable y keine Auswirkung haben.

                  Anders bei register_globals = on - wenn eingeschaltet, kann er MEINE eigene im Script verwendeten Variablen y oder z auch steuern.

                  Puhhh.

                  Ich bin leider nicht in der Informatikbranche tätig, ich hab mich aus Interessensgründen komplett aus diesem Bereich verabschiedet - leider auch zeitlich müssen, da ich in einem vollkommen anderen beruflichen Bereich tätig bin und leider hat mein Provider schlag auf schlag auf einmal umgestellt. Vorher hab ich mir wirklich selten Gedanken über sowas gemacht, war auch nicht nötig.

                  Jetzt wurde alles umgestellt - nur soviel dazu, also ich hab mich quasi das letzte Mal 2003 mit PHP beschäftigt.

                  Gut - muss ich halt jetzt wieder ran. Prinzipiell: Kennt einer ein Buch mit dem ich mich mal wieder reinarbeiten kann?

                  Ist ja erschreckend, dass sich so schnell alles weiterentwickelt, register_globals gabs damals auch schon, war aber garnicht verbreitet.

                  Kommentar


                  • #24
                    Puhhh.
                    Geschaft!
                    Jetzt wurde alles umgestellt - nur soviel dazu, also ich hab mich quasi das letzte Mal 2003 mit PHP beschäftigt.
                    Am besten bei Kropff weiterlesen.
                    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                    Kommentar


                    • #25
                      Also danke an alle, ich war wirklich etwas genervt, wenn man sich fast 4 Jahre seinen eigenen Code nicht mehr ansieht und sieht, was sich geändert hat, naja, das kennt sicher jeder, der mal eine Zeit lang nicht programmiert hat....


                      also Danke nochmal!

                      Die Seite ist gebookmarked und wird sobald ich Zeit hab, gelesen, meine eigene hab ich sicherheitshalber erstmal deaktiviert, so wichtig ist sie auch nicht, dass sie im Netz bleiben muss, lieber mach ich das nochmal gescheit.

                      Kommentar

                      Lädt...
                      X