Morgen,
also, ich hab eigentlich echt keine Lust, Dir das jetzt zu erklaeren, aber, nimm es mir bitte nicht uebel, Du hast ganz offensichtlich keine Ahnung, wie man in scripts in sicherheitsrelevanten Bereichen richtig identifiziert, authentisiert und authentifiziert. Ich hoffe, Du hast in der Machart, wie Du sie vorschlaegst, nicht irgendwo scripts rumliegen, weil Du sonst evtl. ein Problem kriegen koenntest. (BTW: arbeitest Du zufaellig bei T-Online?)
ENV enthält den remote_user nur, wenn dieser auch abgefragt
wurde!
Vorstehende Aussage bleibt!
Meinethalben. Dann frag ich mich, wozu mod_cgi gut ist.
Ist aber so! Das Script mit dem Formular kommt nicht „von
aussen“, sondern über das „Filesystem“, warum sollte es sich
dann authentifizieren?
Das ist falsch, wie ich inzwischen rausgekriegt hab. Letzten Endes war es PEBKAC: ich war so bloed, fuer das CGI-Verzeichnis ‚AllowOverride None‘ zu setzen. Dadurch wurde die dortige .htaccess gar nicht ausgewertet. Ja, ich hab das in meiner Frage nicht verraten. Ja, ich bekenne mich schuldig. My fault.
Weil jeder, der nicht über das Org-FormularScript kommt
automatisch in den Dialog zur Authentifizierung gerät!
Nochmal langsam zum mitmeiseln: fuer das Formular gibt es zwei Nutzer, (eg.) Alice und Bob. Beide haben unterschiedliche Zugangsberechtigungen fuer die Formulardaten. Alice darf darueber ihre Rezeptesammlung einsehen und bearbeiten, Bob den Bestand an Sportwagen in seiner Tiefgarage. Beide muessen sich vor dem Formular identifizieren und authentisieren, das PHP-script authentifiziert sie und autorisiert sie, ihre jeweiligen Daten zu sichten und zu bearbeiten. Du schlaegst mir jetzt allen Ernstes vor, ich solle fuer Alice ungefaehr sowas generieren:
Rezept Wegwerfen?
Alice:Blaubeermuffins []
Alice:Erdbeertorte []
bzw.
Fahrzeug Wegwerfen?
Bob:smiley:odge Viper []
Bob:stuck\_out\_tongue:orsche 911 []
(Natuerlich werden die Zeichenfolge ‚Alice‘ bzw. ‚Bob‘ nicht dargestellt, sondern sind irgendwelche Formularparameter, trotzdem werden sie an den browser der Nutzer weitergegeben und untersteht somit deren Kontrolle und dienen der Kommunikation mit dem CGI-script.)
Wenn Alice eine Gute ist, klickt sie artig und schickt mir sowas wie ‚Alice:Erdbeertorte‘. Das CGI-script identifiziert erneut ‚Alice‘ anhand der Zeichenkette vor dem ‚:‘ und macht einen Zugriff auf ihren Datenbestand indem es das Rezept fuer Erdbeertorte wegwirft. Und genau hier liegt das Problem: Alice wird erneut identifiziert, aber nicht authentisiert und somit auch nicht authentifiziert.
Folgendes Szenario: wenn Alice eine Boese ist, kann sie so garstig sein, nicht klicken, sondern mir den selbst zusammengebauten string ‚Bob:stuck_out_tongue:orsche 911‘ an mein script schicken. Das identifiziert (ohne zu authentisieren) Bob und wirft seinen neuen Porsche weg.
Merken: browser-Daten sind boese Daten! Nimm es bitte wirklich nicht persoenlich, aber die Loesung die Du hier vorschlaegst, mag zwar im guenstigen Fall funktionieren, ansonsten halte ich sie aber fuer sehr fahrlaessig. Sorry, wenn ich hier gegen Dich, der Du mir eigentlich helfen wolltest, argumentieren muss, aber ich konnte das nicht so stehen lassen.
Freundlichen
Gruss vom Frank.