Möchte man innerhalb einer HTML-Seite Parameter und Werte in Form von Hidden Fields ablegen, um diese in einem nachfolgenden Schritt bei der Auswertung einer HTML-Form wieder zur Verfügung zu haben, muss man sicherstellen, dass die Werte auf dem Weg zurück in den Webserver nicht absichtlich oder unabsichtlich verändert wurden.
Mithilfe eines lediglich im eigenen Programm bekannten geheimen Werts und des MD5-Algorithmus lässt sich sehr einfach ein so genannter Hash-Wert ermitteln, der zusätzlich zu den ursprünglichen Werten als Hidden Field in die HTML-Seite gesetzt wird:
Wenn die Werte als Form-Parameter später wieder in einem PHP-Skript landen, muss lediglich der mitgelieferte MD5-Hash mit dem nochmals berechneten Wert verglichen werden. Stimmen beide überein, dann kann man sehr sicher sein, dass die gelieferten Werte auch den Originalen entsprechen:
$geheimnis = "isagsnet";
if( md5($geheimnis.$_REQUEST["so"]) == $_REQUEST["hash"])
{
// alle ok; weiter.geht’s
}
else
{
die("Daten wurden manipuliert");
}
In die Berechnung des Hash-Werts können natürlich beliebig viele nicht veränderliche Parameter mit aufgenommen werden.
webphp
Verlinke auf uns!
Verlinke auf codekicker.de von deinem Blog oder aus deiner Forensignatur:
Das PHP-Journal vermittelt praxisrelevantes Wissen für Entwickler von Web-Applikationen, für Content- und Online-Manager, Agenturen und Webmaster. Neben Praxisartikeln zu Programmiertechniken und Schnittstellen werden im PHP-Journal auch angrenzende Themen wie modernes Webdesign mit AJAX, Aufbau und Betrieb von Web 2.0-Communities und erfolgreiches Online-Marketing zum Beispiel über Suchmaschine-Optimierung behandelt.