$_SERVER['QUERY_STRING'] behandeln
Walter
- cgi
- php
- programmiertechnik
0 Robert B.0 dedlfix0 Email
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
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
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
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
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
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
@@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 🖖
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
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
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 🖖
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
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
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.
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 🖖
Falsche Rechtschreibung kann es dem Leser schwer bis unmöglich machen, den Inhalt richtig zu erfassen.
Richtige auch.
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.
dedlfix.
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.
Kontext!
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.
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.
@@dedlfix
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 🖖
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
Hallo Gunnar Bittersmann,
Ja was denn nun? SCNR.
Oller Stänkerfritze! ;-) SCNR
Bis demnächst
Matthias
@@Matthias Apsel
Oller Stänkerfritze! ;-) SCNR
Die Vorlage war aber auch zu steil. ;-)
LLAP 🖖
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.
@@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 🖖
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.
Hallo Der,
nein, angehängt.
Ceterum censeo "Umlaute" esse delendam. scnr. 😉
Gruss
Henry
@@Henry
nein, angehängt.
Ceterum censeo "Umlaute" esse delendam. scnr. 😉
Gehengt? Der schwindende Unterschied zu gehenkt wäre nicht unproblematisch.
LLAP 🖖
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
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
@@Matthias Apsel
Nu hängste da, du Hengst.
Ein Wallach ist ein Hengst, der nicht mehr hengsteln kann.
LLAP 🖖
ist klar, das ? liegt bereits in $mod_cgi_url. Walter
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
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
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
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.
$cgiurl = $mod_cgi_url.'config='.$myconfigfile.'&'.$_SERVER['QUERY_STRING'];
Die Prozentkodierung entsprechend application/x-www-form-urlencoded wäre zu beachten. MFG