Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Sichere Variablen wann?





Frage

Hallo, hab ein kleines Problem, hab hier mehrere Formulare,Skripte die mit "normalen" Variablen arbeiten. z.B. if ($submit){ bla bla bla.. oder mysql_query("insert into produktsonder (type,german,english,french,spain) values ('$type','$german','$english','$french','$spain')"); oder URL=prodsel-liste.php?untergruppe=$untergruppe...... --------------------------------------- wann tausche ich die Variablen in die sicheren $_GET, $_POST ein bzw. wann ist eine Verwendung dieser angeraten? Gruß

Antwort 1 von Nessus

Hi,

eigentlich immer, da es mit den zukünftigen PHP-Versionen immer die Register_Globals zu beachten gibt.
Falls dein Provider auf die neuen PHP-Versionen umstellt, kann es sonst zu Problemen kommen.

Nessus

Antwort 2 von saxnot2003

Hmm, würde es dann heißen, das der Query in Mysql so ausehen würde:

$_POST['type'],$_POST['german'] usw..

und die Übergabe von Variablen in eine andere Seite?

liste.php?unterguppe=$ ???????????

Weil ich hab nämlich bald das Problem, das eine neuere Version von PHP kommt.

Gruß

Antwort 3 von Nessus

Hi,

http://de3.php.net/manual/de/security.registerglobals.php
Natürlich kannst Du das in der .htaccess manipulieren, ist aber nicht unbedingt zu empfehlen!

Nessus

Antwort 4 von saxnot2003

Hab ich schon gelesen, ich hab aber auch irgendwo gelesen, das Übergaben von Variablen in eine andere Seite z.B. Hiddenfields - unsicher wären.

Dann wäre ein Link mit
link.php?id=$id
Falsch - weil man die Daten sichtbar hätte - die man in das andere Formular übermittelt.

Wie kann man das schnell und elegant lösen?

Gruß

Antwort 5 von ThomasOOP

1. mit sessions arbeiten
sessione werden vorkommen unsichtbar "übergeben"

2. temporäre cookies

3. hidden files mit Post übergeben UND auf der zielseite überprüfen von welcher ausgangsseite diese aufgerufen wurde

Antwort 6 von Nessus

Hi,

ja, das mit den Hidden-Fields ist sehr problematisch. So können ohne weiteres z.B. Mailformulare mißbraucht werden.
Wenn Du die Mailadresse als hidden übergibst, sind da nette Spielereien möglich. So kannst jemand anderes ohne weiteres mit einem Script andere User zumüllen und als Absender steht dann deine Mailadresse (bzw. Domain) dabei. Das kann sehr unangenehm werden, vor allem, wenn der Angreifer mal so 10000 Mails versendet...

Ich versuche auf Hidden-Fields zu verzichten.

Nessus

Antwort 7 von saxnot2003

Also kleinen Denkprozess durchgespielt und sie Session-version ist ja eigentlich easy und dürfte so schnell nicht hintergangen werden.

Habs mal an diesen Beispiel getestet:

seite1.php

<?
session_start()
$var = "mail@test.de";
$text ="message"; 
 $_SESSION["var"] = $var;
 $_SESSION["text"] = $text;
?>
<a href="seite2.php">weiter</a>


Jo und Seite2.php

<?
session_start();
if(session_is_registered("var")){
echo $var;
echo $text;
session_destroy();
}else{
echo "Variable nicht gefunden";
}
?>


Und niemand bemerkt, das die Variablen auf Seite2.php übergeben wurden.
Das session_destroy() hab ich nur mal zu Test eingebaut um zu sehen,wie Variablen danach ins nichts verfallen.

Gruß und Danke...







Antwort 8 von saxnot2003

Mir ist ein kleiner Fehler aufgefallen, obwohl es funktioniert.

die Zeile:

if(session_is_registered("var")){

müsste wenn man es richtig macht so aussehen:

if($_SESSION[ "var"]){


kleines Tutorial zu Sessions ;-)

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: