1
Leider muß ich nochmal ein Thema eröffnen, weil ich mir nicht sicher bin, ob ich meine Formulare richtig absichere.
Also ein Formular wird vom Skript an den Client geschickt und von dort wieder zurück. Dazwischen kann ein Angreifer ein Formular beliebig manipulieren. Dagegen soll es helfen, eine geheime Variable mitzuschicken, anhand derer man (also das Skript) überprüft, ob das zurückbekommene Formular auch das zuvor gesendete ist. Der eigentliche Trick dabei ist wohl keine Konstanten zu verwenden, weil ein Angreifer die dann einfach wieder einsetzen könnte.
Nun ist es ja so, daß ein PHP-Skript sich schon beim zweiten Aufruf nicht mehr an Variablen aus dem ersten Aufruf erinnert. Den über das Formular gesendeten Wert bekommt das Skript per POST-Variable zurück. Der Teil ist kein Problem. Außer natürlich, falls es einem Angreifer schon ausreichen würde, den Wert auszulesen. Nur der Wert mit dem das Skript vergleichen muß, der ist futsch. Darum habe ich das Problem so gelöst, daß eine Variable gesendet wird, die zugleich eine SESSION-Variable ist.
Einerseits funktioniert das so. Aber andererseits könnte ich mir auch vorstellen, daß sich nun dem Fachmann die Zehennägel hochrollen, weil auch eine Sitzung angegriffen werden kann. Übermittle ich so einem Angreifer die Daten, die zu einem Angriff benötigt werden?
Falls meine Lösung nichts taugt, wie speichere ich die Sicherheitsvariablen dann (mal wieder in einer Datenbanktabelle?) und wann sollte ich die Werte ändern?
Ranma
Also ein Formular wird vom Skript an den Client geschickt und von dort wieder zurück. Dazwischen kann ein Angreifer ein Formular beliebig manipulieren. Dagegen soll es helfen, eine geheime Variable mitzuschicken, anhand derer man (also das Skript) überprüft, ob das zurückbekommene Formular auch das zuvor gesendete ist. Der eigentliche Trick dabei ist wohl keine Konstanten zu verwenden, weil ein Angreifer die dann einfach wieder einsetzen könnte.
Nun ist es ja so, daß ein PHP-Skript sich schon beim zweiten Aufruf nicht mehr an Variablen aus dem ersten Aufruf erinnert. Den über das Formular gesendeten Wert bekommt das Skript per POST-Variable zurück. Der Teil ist kein Problem. Außer natürlich, falls es einem Angreifer schon ausreichen würde, den Wert auszulesen. Nur der Wert mit dem das Skript vergleichen muß, der ist futsch. Darum habe ich das Problem so gelöst, daß eine Variable gesendet wird, die zugleich eine SESSION-Variable ist.
Einerseits funktioniert das so. Aber andererseits könnte ich mir auch vorstellen, daß sich nun dem Fachmann die Zehennägel hochrollen, weil auch eine Sitzung angegriffen werden kann. Übermittle ich so einem Angreifer die Daten, die zu einem Angriff benötigt werden?
Falls meine Lösung nichts taugt, wie speichere ich die Sicherheitsvariablen dann (mal wieder in einer Datenbanktabelle?) und wann sollte ich die Werte ändern?
Ranma