Yo!
das ist ja auch der Sinn des Servers, dass er Requests beantwortet. Dann liegts aber wahrhscheinlich am M$IE (5.5), dass die auf der lokalen Platte liegenden Forms einfach nicht an eine Adresse im Internet abgeschickt werden.
Ich sehe keine grundsätzlichen Probleme, warum ein Browser ein Formular, egal woher es geladen wird, nicht an einen Server senden können sollte. Gibt die komplette URL (mit http vorn) an, und es sollte funktionieren.
Demnach ist es aber möglich, (php-)Script auf dem Server mit getürkten Anfragen zu übreschütten, also einfach diverse Standardbezeichner für Variablen in ein Form zu packen. Namen, die ben jeder mal so nimmt... Und wenn Treffer dabei sind, kann man das Script gehörig durcheinander bringen und den Server nebst Admin zum Schwitzen.
Tja, das Problem hast du zumindest schon mal gut erkannt. Elementar ist, daß man seine im Script benutzten Variablen initialisiert und ansonsten auf $HTTP_*_VARS (oder moderner $_GET, $_POST, $_COOKIES, $_FILES) zurückgreift - dadurch weiß man, welche Quelle man anzapft, und es ist schonmal unmöglich, daß man aus versehen ein GET-Formular erhält, wo nur ein POST-Formular existiert und versendet werden soll.
Jetzt gilt es also herauszuarbeiten, wie Scripte in PHP einigermaßen "eigensicher" gestaltet werden können. Die dürfen also nur auf eine bestimmte Kombination von Variablenbezeichner und Wert reagieren.
Die dürfen auf alle Kombinationen reagieren - sie sollten nur lediglich keinerlei PHP-Variablen erzeugen, auch wenn das auf den ersten Blick ziemlich praktisch erscheint.
Wie sehr man sich täuschen kann, was die eigene Sicherheit angeht, habe ich exemplarisch mal in http://forum.de.selfhtml.org/archiv/2002/6/15268/#m85650 erforscht anhand eines real existierenden und zum Glück nicht von mir geschriebenen Scriptes. Dort siehst du hoffentlich recht eindeutig, was das Sicherheitsproblem ist, und daß man es im Prinzip auf eine ganz simple Weise lösen könnte: Variablen initialisieren, und zwar immer!
- Sven Rautenberg