Moin!
Der Browsersicherste Weg ist es, die Felder jedesmal neu zu benennen und in einem versteckten Formularfeld deren Namen zu übergeben. Das kann dann ja serverseitig ausgewertet werden.
Formular:
<?php
$strGeheim='F'.md5('SALT'.$_SERVER['UNIQUE_ID']);
?>
<input type="hidden" name="ffeldname" value="<?php echo $strGeheim; ?>">
<input type="text" name="<?php echo $strGeheim; ?>" value="">
$strGeheim='F'.md5('SALT'.$_SERVER['UNIQUE_ID']);
Ganz einfach:
$_SERVER['UNIQUE_ID'] - liefert eine "einzigartige" id für den Zugriff. Falls auf dem Server nicht implementiert, eine große Zufallszahl verwenden...
'SALT'.$_SERVER['UNIQUE_ID'] - 'SALT' ist hier Platzhalter für einen beliebigen String, den der Programmierer 'geheim' hält um es einem Angreifer zu erschweren $_SERVER['UNIQUE_ID'] oder die Zufallszahl, respektive das Ergebnis von md5() zu erraten.
md5('SALT'.$_SERVER['UNIQUE_ID']) - verschlüsselt das ganze nach dem MD5- Verfahren. "Einwegverschlüsselung", lässt sich "nicht" enschlüsseln. (Das Verfahren ist kompromittiert, aber nicht geknackt)
'F'.md5('SALT'.$_SERVER['UNIQUE_ID']); ?> - Wir schreiben einen beliebigen Buchstaben davor, weil Namen von Formularfeldern mit einem Buchstaben beginnen müssen, MD5 aber eine Ziffer liefern kann.
<input type="hidden" name="ffeldname" value="F75b8cbbb833c0aab1151cba662246e24">
<input type="hidden" name="F75b8cbbb833c0aab1151cba662246e24" value="">
- könnte in etwa das Ergebnis sein.
Auswertung (auch in PHP)
<?php
function MyError() {
die('FEHLER');
}
if (isset ($_POST['ffeldname'])) {
$strFeldname=$_POST['ffeldname'];
if isset($_POST['$strFeldname'])) {
$strFeldinhalt=$_POST['$strFeldname'];
} else {
MyError();
}
} else {
MyError();
}
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development