Hallo,
ich habe hier ein kleines blödes Problem und komme nicht wirklich zu einer "sicheren" Lösung.
Eine Login-Seite führt per AJAX eine Authorisierung durch, gibt drei Werte zurück und öffnet im Erfolgsfall ein PopUp (mit weiteren Parametern zwecks Echtheit über Login etc.). Das klappt auch alles prima ...
Nun würde ich gern in dieser "AJAX deluxe" Applikation das Speichern von Datensätzen ermöglichen - hierzu habe ich selbstredend vom Login die UserID als Sessionwert
präsent.
Wenn ich dem AJAX nun den Befehl zwecks SAVE (oder später LOAD) gebe, so muß ich doch - verdammt nochmal - diesen Wert aus der Session irgendwo hinpacken, damit ich hier via JavaScript zugreifen kann, oder? Sprich: Variable, hidden field o. ä.
Haken: Wenn ich nun diese Variable wie o. a. ablege, könnte ein Schelm via Firebug hier das JavaScript manipulieren und sich so z. B. die Datensätze von einer anderen UserID ansehen.
Leider ist die UserDB eine 1 - [n] Geschichte ... ich dachte schon an eine per Zusatz verschlüsselte UserID, die mit einem Array auf Serverseite abgeglichen wird ... hier könnte es aber schon recht ätzend werden, wenn ich ein Array mit 5.000 Usern habe und dazu ein Hashwert. Nachbauen könnte man den md5 nur, wenn die Ergänzung drin ist (also nix mit md5($_SESSION['UserID']) ) ... ein wenig sicherer schon.
Wie machen das denn die großen Versandhäuser beispielsweise? Die müssten doch nach erfolgreichem Login per Kundennummer z. B. auch irgendwie eine Übergabe hinbekommen ...
Oder bin ich zu kompliziert? Im SELFHTML-Forum hatte wohl jemand ein artverwandtes Problem (allerdings SessionID), doch da haben die User geschrieben, dass die Seite, die AJAX erfragt mit einem session_start() auch die Session hätte ... ich dachte eigentlich, dass der Request eher "unabhängig" von der gängigen Session ist und die AJAX-Request-Seite eine eigene Session bekommen würde. Wenn dem nicht so ist, löst sich mein Problem von allein ... ansonsten wäre ich für eine vielleicht moderatere Lösung dankbar.
Zusammenfassung:
- UserID: 15 (bspw.)
- UserID wird zum Auslesen bzw. Speichern von Datensätzen benötigt, die per AJAX erfolgt
Wie übergebe ich die 15 am sinnvollsten, ohne Mißbrauch zu bekommen? Denn schließlich muß der Wert für das JavaScript Gefrickel ja irgendwo hingeschrieben werden. Klartext ist - IMHO - fatal ...
Sorry, und falls wer darüber lachen will, bitte ... sitze jetzt seit 27 Stunden am Stück hier am Projekt ... vielleicht tut Schlaf mal Not.
Danke für alle Antworten.