Walter: $_SERVER['QUERY_STRING'] behandeln

0 36

$_SERVER['QUERY_STRING'] behandeln

  1. 0
    1. 1
      1. 0
      2. 1
        1. 0
      3. 0
        1. 0
      4. 0
        1. 1
          1. 1
        2. 0
          1. 0
            1. 2
              1. 0
            2. 2
              1. 0
                1. 0
                  1. 1
                    1. 0
                    2. 0
                      1. 0
                        1. 0
                          1. 0
                    3. 0
      5. 0
        1. 0
          1. 1
            1. 0
              1. 0
    2. 0
      1. 0
        1. 1
          1. 0
  2. 0
  3. 0

Guten Morgen, ich habe folgenes Konstrukt um eine URL zusammenzubauen die ich an ein CGI Programm schicke, das Ergebnis gebe ich dann in meinem Script aus:

//Curl
function get_content($URL){
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
      curl_setopt($ch, CURLOPT_URL, $URL);
      $data = curl_exec($ch);
      curl_close($ch);
      return $data;
}

$cgiurl = $mod_cgi_url.'config='.$myconfigfile.'&'.$_SERVER['QUERY_STRING'];

$cgiresponse =  get_content($cgiurl);

if($_GET['format']) == 'xml'){	
		header('Content-type: application/xml; charset=utf-8');			
		echo $cgiresponse ;
		exit;
}

...

Ist das Zusammenbauen einer URL auf diese Weise ein Sicherheitsproblem, oder muss ich hier irgendwie die erzeugte URL behandeln? Das CGI Programm an welches ich die Parameter übergebe sollte über entsprechende Sicherheitsfeatures verfügen, die Antwort sollte also sauber sein. Danke + Gruß Walter

  1. Moin,

    in dieser Form

    $cgiurl = $mod_cgi_url.'config='.$myconfigfile.'&'.$_SERVER['QUERY_STRING'];
    
    $cgiresponse =  get_content($cgiurl);
    

    werden die Schlüssel-Wert-Paare des Querystrings an den vorhandenen Querystring angehangen. Ist das so gewünscht oder soll der Original-Querystring noch erkennbar sein?

    Ansonsten beachte, dass $_SERVER['QUERY_STRING'] mit einem ? beginnt.

    Viele Grüße
    Robert

    1. Hallo Robert,

      in dieser Form

      $cgiurl = $mod_cgi_url.'config='.$myconfigfile.'&'.$_SERVER['QUERY_STRING'];
      
      $cgiresponse =  get_content($cgiurl);
      

      werden die Schlüssel-Wert-Paare des Querystrings an den vorhandenen Querystring angehangen.

      nein, angehängt.

      Das Partizip Perfekt von hängen ist gehängt, wenn es transitiv benutzt wird, und gehangen, wenn is intransitiv benutzt wird.

      Beispiel:
      A: Das Bild hat schon immer da gehangen.
      B: Nein, ich habe es gestern erst aufgehängt.

      So, das musste doch mal gesagt werden.

      *scnr*
       Martin

      --
      Computer müssen weiblich sein: Eigensinnig, schwer zu durchschauen, immer für Überraschungen gut - aber man möchte sie nicht missen.
      1. Moin Martin,

        Danke für den Hinweis, ich werde mich bessern!

        Dafür liebe ich dieses Forum: Man lernt immer auch abseits des Themas dazu!

        Viele Grüße
        Robert

      2. Hallo

        So, das musste doch mal gesagt werden.

        Nein. Richtig ist: „Das wird man [in diesem Land] ja wohl noch sagen dürfen!“

        *scnr*

        Öhhm, dito. 😉

        Tschö, Auge

        --
        Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
        Hohle Köpfe von Terry Pratchett
        1. Moin,

          So, das musste doch mal gesagt werden.

          Nein. Richtig ist: „Das wird man [in diesem Land] ja wohl noch sagen dürfen!“

          Danke Merkel! Äh, Danke Auge.

          Viele Grüße
          Robert

      3. @@Der Martin

        Das Partizip Perfekt von hängen ist gehängt, wenn es transitiv benutzt wird, und gehangen, wenn is intransitiv benutzt wird.

        Sind das nun eigentlich verschiedene Formen eines Verbs oder sind es zwei verschiedene Verben, deren Infinitiv hängen gleich ist?

        Bei anderen Verben sind die Infinitive unterschiedlich: z.B. setzen/sitzen.

        LLAP 🖖

        --
        „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
        „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

        —Marc-Uwe Kling
        1. Hallo Gunnar,

          Das Partizip Perfekt von hängen ist gehängt, wenn es transitiv benutzt wird, und gehangen, wenn is intransitiv benutzt wird.

          Sind das nun eigentlich verschiedene Formen eines Verbs oder sind es zwei verschiedene Verben, deren Infinitiv hängen gleich ist?

          hmm, gute Frage ... Nächste Frage!
          Zumindest ist die Semantik leicht verschieden. Das eine ist etwas Passives, das andere etwas Aktives. Und die anderen Formen sind ja teils auch verschieden, etwa hängte und hing.

          Bei anderen Verben sind die Infinitive unterschiedlich: z.B. setzen/sitzen.

          Stimmt: gesetzt/gesessen
          Mir fallen spontan noch ein paar sehr ähnliche Beispiele ein, so dass deine Frage eigentlich sehr berechtigt ist.

          Ciao,
           Martin

          --
          Computer müssen weiblich sein: Eigensinnig, schwer zu durchschauen, immer für Überraschungen gut - aber man möchte sie nicht missen.
      4. hi,

        Das Partizip Perfekt von hängen ist gehängt, wenn es transitiv benutzt wird, und gehangen, wenn is intransitiv benutzt wird.

        Und wie hältst Du is selbst mit der Rechtschreibung?

        MFG

        1. @@Email

          Das Partizip Perfekt von hängen ist gehängt, wenn es transitiv benutzt wird, und gehangen, wenn is intransitiv benutzt wird.

          Und wie hältst Du is selbst mit der Rechtschreibung?

          Und wie hältst Du is mit der Unterscheidung von Rechtschreibung und Grammatik? 😜

          LLAP 🖖

          --
          „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
          „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

          —Marc-Uwe Kling
          1. @@Email

            Das Partizip Perfekt von hängen ist gehängt, wenn es transitiv benutzt wird, und gehangen, wenn is intransitiv benutzt wird.

            Und wie hältst Du is selbst mit der Rechtschreibung?

            Und wie hältst Du is mit der Unterscheidung von Rechtschreibung und Grammatik? 😜

            Das sage ich Dir gerne: Seit der letzten Reform kann ich beides nicht mehr so wirklich ernst nehmen.

            MFG

        2. Hallo,

          Das Partizip Perfekt von hängen ist gehängt, wenn es transitiv benutzt wird, und gehangen, wenn is intransitiv benutzt wird.

          Und wie hältst Du is selbst mit der Rechtschreibung?

          je nachdem, wie ich gerade drauf bin. Und der Tippfehler bleibt jetzt drin.

          Ciao,
           Martin

          --
          Computer müssen weiblich sein: Eigensinnig, schwer zu durchschauen, immer für Überraschungen gut - aber man möchte sie nicht missen.
          1. Tippfehler passirn. und ich geh jetz beim Bäcker. MFG

            PS: Ich finde, jeder solle so schreiben wie er es für richtich hält. So gricht jeder Wisch eine persöhnlische Node. Alles richtich schreiben is doch nur Heuchelei.

            1. @@Email

              Falsche Rechtschreibung kann es dem Leser schwer bis unmöglich machen, den Inhalt richtig zu erfassen.

              Allerdings rettet auch richtige Rechtschreibung hier so manches Posting nicht mehr.

              LLAP 🖖

              --
              „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
              „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

              —Marc-Uwe Kling
              1. Falsche Rechtschreibung kann es dem Leser schwer bis unmöglich machen, den Inhalt richtig zu erfassen.

                Richtige auch.

            2. Tach!

              PS: Ich finde, jeder solle so schreiben wie er es für richtich hält. So gricht jeder Wisch eine persöhnlische Node. Alles richtich schreiben is doch nur Heuchelei.

              Ja was denn nun?

              dedlfix.

              1. Tach!

                PS: Ich finde, jeder solle so schreiben wie er es für richtich hält. So gricht jeder Wisch eine persöhnlische Node. Alles richtich schreiben is doch nur Heuchelei.

                Ja was denn nun?

                Kontext!

                1. Tach!

                  PS: Ich finde, jeder solle so schreiben wie er es für richtich hält. So gricht jeder Wisch eine persöhnlische Node. Alles richtich schreiben is doch nur Heuchelei.

                  Ja was denn nun?

                  Kontext!

                  Das heißt, wenn das Team klein genug ist, muss man sich an Regeln halten, damit das Chaos ausbleibt. Wenn der Empfängerkreis dagegen undefiniert groß ist, ist das egal. Worauf begründen sich denn hier die unterschiedlichen Maßstäbe?

                  dedlfix.

                  1. @@dedlfix

                    Ja was denn nun?

                    Kontext!

                    Das heißt, wenn das Team klein genug ist, muss man sich an Regeln halten, damit das Chaos ausbleibt. Wenn der Empfängerkreis dagegen undefiniert groß ist, ist das egal. Worauf begründen sich denn hier die unterschiedlichen Maßstäbe?

                    Ja was denn nun? SCNR.

                    LLAP 🖖

                    --
                    „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
                    „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

                    —Marc-Uwe Kling
                    1. Mein Kontext heißt Rente. Programmieren ist nur noch ein rudimentäres Hobby was mir zum Glück geblieben ist. Und immer wenn ich da ab und zu mal was mache, wird mir klar wie übel es da draußen zugeht und wie glücklich ich bin daß mir bei meinen Code keiner mehr vorschreibt, wieviele Leerzeichen ein Tabulator hat und anderen Blödsinn.

                      Aber Eines ist fakt: Wenn ich mir selbst keine Disziplin auferlegen würde, könnte ich dieses Hobby nicht mehr ausüben. MFG

                    2. Hallo Gunnar Bittersmann,

                      Ja was denn nun? SCNR.

                      Oller Stänkerfritze! ;-) SCNR

                      Bis demnächst
                      Matthias

                      --
                      Pantoffeltierchen haben keine Hobbys.
                      ¯\_(ツ)_/¯
                      1. @@Matthias Apsel

                        Oller Stänkerfritze! ;-) SCNR

                        Die Vorlage war aber auch zu steil. ;-)

                        LLAP 🖖

                        --
                        „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
                        „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

                        —Marc-Uwe Kling
                        1. Tach!

                          Die Vorlage war aber auch zu steil. ;-)

                          Sie würde vielleicht Wirkung zeigen, wenn das in meinem Fall so wäre, dass ich zweierlei Arten hätte, Anwendungen zu schreiben. Ich schreibe das gemäß Anforderung der Auftraggeber. Wenn die keine Notwendigkeit sehen, kommt da auch kein zusätzlicher Aufwand rein, egal für welche Belange.

                          dedlfix.

                          1. @@dedlfix

                            Die Vorlage war aber auch zu steil. ;-)

                            Sie würde vielleicht Wirkung zeigen, wenn das in meinem Fall so wäre, …

                            Ich hätte ja noch ein neues Tag „wortspiel“ einführen können, fand das Posting aber mit „klugscheißerei“ und „sprache“ hinreichend getaggt. Für manche nicht hinreichend genug?

                            LLAP 🖖

                            --
                            „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
                            „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

                            —Marc-Uwe Kling
                    3. Tach!

                      Ja was denn nun? SCNR.

                      Unterschiedliche Anforderungen können auch in ähnlichen Situationen durchaus zu unterschiedlichen Lösungen führen. Das ist für mich nicht das Problem. Die Frage hier war, um herauszufinden, was bei diesen beiden Kommunikationsarten der Unterschied ist.

                      dedlfix.

      5. Hallo Der,

        nein, angehängt.

        Ceterum censeo "Umlaute" esse delendam. scnr. 😉

        Gruss
        Henry

        --
        Meine Meinung zu DSGVO & Co:
        „Principiis obsta. Sero medicina parata, cum mala per longas convaluere moras.“
        1. @@Henry

          nein, angehängt.

          Ceterum censeo "Umlaute" esse delendam. scnr. 😉

          Gehengt? Der schwindende Unterschied zu gehenkt wäre nicht unproblematisch.

          LLAP 🖖

          --
          „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
          „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

          —Marc-Uwe Kling
          1. Hallo,

            nein, angehängt.

            Ceterum censeo "Umlaute" esse delendam. scnr. 😉

            Gehengt?

            du hengst an Umlauten? Das ist ja zum Wiehern!

            Der schwindende Unterschied zu gehenkt wäre nicht unproblematisch.

            Ich kenne nicht wenige Menschen, die das g in "hängt" tatsächlich hart aussprechen.

            Ciao,
             Martin

            --
            Computer müssen weiblich sein: Eigensinnig, schwer zu durchschauen, immer für Überraschungen gut - aber man möchte sie nicht missen.
            1. Hallo Der Martin,

              Ich kenne nicht wenige Menschen, die das g in "hängt" tatsächlich hart aussprechen.

              Nu hängste da, du Hengst.

              Bis demnächst
              Matthias

              --
              Pantoffeltierchen haben keine Hobbys.
              ¯\_(ツ)_/¯
              1. @@Matthias Apsel

                Nu hängste da, du Hengst.

                Ein Wallach ist ein Hengst, der nicht mehr hengsteln kann.

                LLAP 🖖

                --
                „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
                „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

                —Marc-Uwe Kling
    2. ist klar, das ? liegt bereits in $mod_cgi_url. Walter

      1. Moin Walter,

        ist klar, das ? liegt bereits in $mod_cgi_url.

        … und ein zweites Fragezeichen steht am Anfang von $_SERVER['QUERY_STRING'].

        Viele Grüße
        Robert

        1. Hallo

          ist klar, das ? liegt bereits in $mod_cgi_url.

          … und ein zweites Fragezeichen steht am Anfang von $_SERVER['QUERY_STRING'].

          Wo glaubst du das gesehen zu haben? Ich habe das Fragezeichen übrigens an anderer Stelle vermisst. Die Parameterliste beginnt ja offensichtlich schon mit config='.$myconfigfile, womit das Fragezeichen vor „config“ nicht zu sehen ist.

          $cgiurl = $mod_cgi_url.'config='.$myconfigfile.'&'.$_SERVER['QUERY_STRING'];
          

          Walter hat ja nun mit „das ? liegt bereits in $mod_cgi_url klargestellt, wo es ist. Vor $_SERVER sehe ich aber kein „?“. Hast du dich etwa beim „&“ „versehen“?

          Tschö, Auge

          --
          Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
          Hohle Köpfe von Terry Pratchett
          1. Moin

            Walter hat ja nun mit „das ? liegt bereits in $mod_cgi_url klargestellt, wo es ist. Vor $_SERVER sehe ich aber kein „?“. Hast du dich etwa beim „&“ „versehen“?

            ne, ich hatte da was falsch in Erinnerung – du hast vollkommen Recht.

            Viele Grüße
            Robert

  2. Tach!

    Ist das Zusammenbauen einer URL auf diese Weise ein Sicherheitsproblem, oder muss ich hier irgendwie die erzeugte URL behandeln?

    Bitte lies den Wiki-Artikel zum Kontextwechsel

    Es kann immer zu Problemen führen, wenn man nicht sicherstellt, dass die Syntax korrekt und intentionsgemäß eingehalten wird.

    Das CGI Programm an welches ich die Parameter übergebe sollte über entsprechende Sicherheitsfeatures verfügen, die Antwort sollte also sauber sein.

    Selbst wenn sich der Empfänger nicht durch untergeschobenen Code beeindrucken lässt, kann es zu ungewünschten Auswirkungen kommen, wenn in den Daten Zeichen enthalten sind, die als Sonderzeichen interpretiert werden - sprich als syntaktischer Bestandteil eines anderen Elements -, und somit an der Stelle die Daten zum Beispiel abgeschnitten werden.

    dedlfix.

  3. $cgiurl = $mod_cgi_url.'config='.$myconfigfile.'&'.$_SERVER['QUERY_STRING'];

    Die Prozentkodierung entsprechend application/x-www-form-urlencoded wäre zu beachten. MFG