![]() |
| | Themen-Optionen | Thema durchsuchen |
| | Nach oben #1 |
| Neuer Benutzer Registriert seit: 27.01.2006
Beiträge: 26
| Formulare mit gesicherten hidden-Daten übergeben Das Problem: Es sollen in einem Formular, mit GET oder POST , ein paar Werte als hidden übergeben werden. Das Versenden der Daten wird immer vom Client (in diesem Fall der Benutzer) ausgeführt. Der Benutzer kann aber auch selber ein Formular generieren und die hidden-Werte manipulieren. Mit anderen Worten , ich kann nicht davon ausgehen, dass das von mir erstellte Formular auch für den Versand der Daten oder den richtigen Inhalt verwendet wird. Es müssen also Vorkehrungen getroffen werden, die das Manipulieren unmöglich machen , oder zumindest erschweren. Ansätze zur Lösung: Schritt 1: Es ist sicherzustellen, dass das Formular vom Versender kommt. Um dies zu erreichen muss mit einem Zufallscode, eine Kombination aus zufälligen Zahlen und Buchstaben erstellt werden. Empfohlene grösse des Zufallscode sind 16 oder mehr Zeichen. Der Zufallscode wird ebenfalls als hidden-Wert im Formular dem Client übergeben. Auf dem Server muss der Zufallscode in einer Session zwischengespeichert werden, um den Zufallscode bei der Überprüfung vergleichen zu können. Der Versender hat schon mal kaum die Möglichkeit den Zufallscode zu erraten. Er kann nur nach Aufruf des richtigen Formulars seine Daten versenden. Ein Problem besteht allerdings noch. Dem Benutzer steht noch die Möglichkeit offen, das Formular auszurufen und somit auch den passenden Zufallscode zu erhalten. Danach könnte er die hidden-Daten mit den passenden Zufallscode manipulieren. Um auch das zu verhindern kann man alle hidden-Werte zuvor miteinander als String Verknüpfen und mittels md5-Funktion in einen sog. MD5-Hash umwandeln. Die gleiche Methode wird bei nach dem Empfang der Formulardaten mit diesen Daten wiederholt und beide MD5-Hash's werden verglichen. So kann einen Manipulation der hidden-Werte ausgeschlossen werden. Diese Methode der Werteüberprüfung funktioniert nur mit Werten die nicht Verändert werden oder nicht verändert werden dürfen. Beispielsweise bei der Navigation von Seiten. Für Verbesserungen oder andere Lösungen bin ich offen: org. Quelle: http://tecbase.dyndns.org/forum/viewtopic.php?t=17 |
| | |
| | Nach oben #2 | |
| Erfahrener Benutzer Registriert seit: 19.08.2005
Beiträge: 115
| Zitat:
__________________ Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning. | |
| | |
| | Nach oben #3 |
| Martin Breuer Registriert seit: 17.08.2005 Ort: Berlin
Beiträge: 1.653
|
Mja wenn die Daten in den hidden-felder für jedes Formular fest steht, dann ist es sinnvoller die Daten in die Session zu speichern. So kommt gar keiner erst auf die Idee, dass es dort noch daten gibt, die man manipulieren kann.
__________________ I did it my way - Senseless-Blog Weihnachtsgeschenk? Schülern helfen - Bodypainting Kalender für 2009 |
| | |
| | Nach oben #4 |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.516
|
Imho haben Angaben, die nicht geändert werden soll oder gar sicherheitsrelevante Angaben nichts in hidden-Feldern zu suchen. Einen ähnlichen Thread gab es hier schon mal. Grüße, Ben. Geändert von Jann Hendrik (03.09.2008 um 15:18 Uhr) |
| | |
| | Nach oben #5 |
| Neuer Benutzer Registriert seit: 27.01.2006
Beiträge: 26
|
Wenn ich die Variablen alle in einer Session speichere , habe ich das Problem, dass die Sessionvariablen im nachfolgenden Schritt erhalten bleiben. Ich müsste die betreffenden Session immer löschen. Dabei gibt es noch das Problem, dass ich auch mehrere Zweige von meinem letzten Punkt haben kann und in den nachfolgenden Zweigen nicht überall eine Funktion schreiben will um die Werte zu löschen. Weiterhin will ich die Anderen Zweige teilweisse auch von anderen Stellen aufrufen können. Ich sehe in der Beständigkeit der Sessionwerte das Problem mit dem handling. Wenn ich die Werte über hidden übergeben kann in sicherstellen, dass die Werte auch im 2. Schritt nicht mehr vorhanden sind. Das ist z.Z. erst mal eine Lösung. Ich weiss ja nicht ob es da noch andere Ansätze gibt? |
| | |
| | Nach oben #6 |
| Johannes Schlichenmaier Registriert seit: 26.08.2005 Ort: Mannheim
Beiträge: 403
|
Du kannst doch einzelnen Sessionvariablen per unset() löschen.
__________________ In the beginning was the word and the word was content-type: plain/text heute code ich, morgen debug ich und uebermorgen cast ich die koenigin auf int Geändert von Jojo (14.03.2006 um 15:21 Uhr) |
| | |
| | Nach oben #7 |
| Erfahrener Benutzer Registriert seit: 19.08.2005
Beiträge: 115
|
schadet es denn, wenn die werte weitergespeichert werden?
__________________ Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to build bigger and better idiots. So far, the universe is winning. |
| | |
| | Nach oben #8 | |
| Benjamin Klaile Registriert seit: 02.12.2004 Ort: Remagen
Beiträge: 4.516
| Zitat:
Dann macht es schon Sinn diese zu löschen, wenn die Logik es nötig macht. Beispiel: PHP-Code: Bin mir allerdings auch nicht sicher, wie denn die übergebenen Daten performancetechnisch zum Tragen kommen. | |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | Thema durchsuchen |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Hardware-RAID-Lösung | robo47 | Plauderecke | 29 | 26.12.2007 04:49 |
| Speicherung von unternehmenskritischen Daten | bobby | Datenbanken | 5 | 23.05.2007 08:33 |
| [JAVA] Wie man aus Java mit einem PHP-Script kommuniziert | sparrow | Tutorials | 0 | 25.03.2006 22:24 |
| daten in array eintragen und auslesen | zerberos | Allgemeine Java-Programmierung | 15 | 20.02.2005 21:49 |
| [PHP] Wie übergebe ich Daten per URL? | Ben | Tutorials | 0 | 05.12.2004 14:36 |