PHP mehrseitiges Formular - Sicherheit

Die Formulare werden über eine index-Datei automatisch angezeigt.
Ok, werd ich mal versuchen.
Aber kann man dann nicht auch manipulieren, indem man z.B. im Firebug einfach den Namen des Buttons ändert?

PHP:
<input ... value="" name="b_x" ... />
<input ... value="" name="f_y" ... />

x = [1 .. n-1]
y = [2 .. n]

n ist maximale Seite der Registrierung ( 5 oder 3 oder was du halt hast )

Keine Hiddenfelder.
Der Button mit Namen b_x wird nur angezeigt, wenn aktuelle Seite größer als 1 ist und kleiner gleich n-1.
Der Button mit Namen f_y wird nur angezeigz, wenn die aktuelle Seite
größer gleich 1 ist und kleiner n.

Prüfen auf Werte der Eingaben ist wichtig.
Wenn der Button im Firebug umbenannt wird, wird er von Deinem Script ja nicht erkannt. Somit ist das keine Möglichkeit.

x + 1 === pagecounter === y - 1

der pagecounter wird mit beginn der registrierung in die Session geschrieben und auf 1 gesetzt !
x = 0 und y = 2
 
Hi,

ich hab nun alle Werte in der Session gespeichert. Wenn eine Seite ausgefüllt wurde, wird ein redirect gemacht. Dadurch sind alle Post-Werte weg und alles in der Session.

PHP:
$step = $_SESSION['step'];
switch($step){
       
    case 1: include 'form1.php';
    break;

    case 2: include 'form2.php';
    break;
}

Den redirect muss man auch machen, da in den Dateien form1.php und form2.php $_SESSION['step'] ja erst neu gesetzt wird, ich aber weiter oben den aktuellen Wert schon benötige (um das korrekt Form einzubinden)
 
dafür muss man aber keinen switch bauen.

PHP:
$name = "form".$_SESSION['step']."php";
include( $name );


Somit ist auch immer die aktuelle datei includiert.

Der switch wäre für die jeweilige Datenverarbeitung wichtig.
 
Wieso denn sehr gefährlich? Es können doch maximal alle "form<-X>.php" bis "form<+Y>.php" eingebunden werden und wenn man im Code gut auf die Grenzen achtet, sehe ich eigentlich keinerlei Gefahr.
 
[...] und wenn man im Code gut auf die Grenzen achtet, sehe ich eigentlich keinerlei Gefahr.
Da seh ich eher das Problem. Wenn wegen eines anderen Fehlers von außen Daten in die Session kommen, z.B.
PHP:
// NEGATIVBEISPIEL!!
$_SESSION['step'] = $_POST['step']; // einfach mal so glauben, dass der aktuell übernimmelte Step korrekt is
is das schon wieder was, was man vermeiden kann.

Drum: Warum Risiko spielen? Solange die Anzahl der Steps im Formular überschaubar is (sagen wir mal bis 5), stört das imo nicht. Und wenn das Formular wirklich größer is, wird man sich sowieso geeignete Datennamen ausdenken, weil man nimmer weiß, was jetzt in form42.php gemacht wird.
 
er hat angst for $_session hacking und page counter einschleußen.
wer aber auf sicherheit achtet, hat keine probleme
leider poste ich nur schnipsel und keinen kompletten

meine sachen sind nur denkanstöße
umsetzen mus es der autor selbst