Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

PHP Übergabe Variablen register_globals On/Off

uspc / 6 Antworten / Baumansicht Nickles

Hallo, als Anfänger in Sachen PHP habe ich eine Frage: Ich übergebe noch die Variablen so:


< html>< head>< title> meine Site < /title>< /head>< body>

< !-- diese Datei ist die seite1.php -->
< !-- in den Variablen $var1 $var2 usw. steht der Inhalt der Eingabefelder, -->
< !-- Übergabe klappt mit register_globals=On -->

< form action='seite2.php' method='post'>

< input type=text name1='$var1'>
< input type=text name2='$var2'>
< input type=text name3='$var3'>

< input type=submit>
< /form>
< /body></html>


Das funktioniert nur mit register_globals=On. Wie kann ich das umschreiben, wenn die register_globals=Off konfiguriert sind ? Kann mir jemand ein kleines Script zeigen, wie ich die Variablen übertragen kriege ? Sollte möglichst einfach sein...

Vielen Dank für die Hilfe schon mal vorab. Gruss uspc

bei Antwort benachrichtigen
Borlander uspc „PHP Übergabe Variablen register_globals On/Off“
Optionen

Die Formulardaten stehen anschließend in den Superglobalen $_GET und $_POST (abhängig von der Übertragungsmethode, in Deinem Fall also POST).

Siehe dazu auch http://de2.php.net/manual/de/language.variables.external.php

Auf jeden Fall noch mal ganz wichtig: Eingabedaten nie ungeprüft weiterverwenden!


Gruß
Borlander

bei Antwort benachrichtigen
uspc Borlander „Die Formulardaten stehen anschließend in den Superglobalen _GET und _POST...“
Optionen

Vielen Dank Borlander, das hab ich geschnallt. Danke auch für den Link. Beste grüße, uspc

bei Antwort benachrichtigen
Synthetic_codes uspc „Vielen Dank Borlander, das hab ich geschnallt. Danke auch für den Link. Beste...“
Optionen

Hi, ich würde an deiner stelle auch die name Felder in deinem HTML Formular nicht entsprechend der variable in deinem PHP Programm benennen. Sprich mach das $ raus und/oder benenn die variablen komplett um. Ein angreifer kann, so wie es jetzt steht, auf variablennamen im php code schliessen, und mit diesem wissen lässt sich unter kenntnis der richtigen exploits arger tobak anstellen.
Die variablen werden unter PHP als $_POST['nameimform'] zur verfügung gestellt. den kompletten POST Body(ungeparst und urlencoded) bekommst du über fopen("php://input","r")

'); DROP TABLE users;--
bei Antwort benachrichtigen
uspc Synthetic_codes „Hi, ich würde an deiner stelle auch die name Felder in deinem HTML Formular...“
Optionen

Hi, danke für den Hinweis - genau das ist das gefährliche an meinem alten Code. Ich hab das mal so gelernt und immer wieder angewendet. Aber stehen geblieben in der Zeit, weil zu wenig damit zu tun gehabt. Danke, dass ihr mir das mit wenigen Worten und verständlich erläutert habt. Beste Grüße uspc.

bei Antwort benachrichtigen
Borlander Synthetic_codes „Hi, ich würde an deiner stelle auch die name Felder in deinem HTML Formular...“
Optionen

Also das geht schon so ein wenig in Richtung Security by Obscurity. Die Sicherheit einer Anwendung sollte nicht darauf beruhen, daß der Quellcode geheim ist.
Auf "Register Globals" sollte und auch export sollte man tunlichst verzichten.

Gruß
Borlander

bei Antwort benachrichtigen
Synthetic_codes Borlander „Also das geht schon so ein wenig in Richtung Security by Obscurity. Die...“
Optionen

naja security by obscurity würde ich jetzt nur begrenzt anführen. ich meine es ist was anderes ob du deinen haustürschlüssel unter der fussmatte aufbewahrst oder ob du zusätzlich noch ein grosses schild auf der strasse aufstellst: "Haustürschlüssel unter fussmatte. bin von 09-17 uhr arbeiten"

'); DROP TABLE users;--
bei Antwort benachrichtigen