Original von Dunedan
Original von Kallisti
Naja, kritisches Thema, ich finde allerdings seine Loesungsvorschlaege ziemlich unpraktikabel und wuerde eher das Verlinken von Grafiken ganz unterbinden.
Erklär mir mal wie du auf einer beliebigen, nicht von dir kontrollierten Seite das einbinden von Grafiken die auf dein Spiel verweisen unterbinden willst?
Stimmt, ich hatte es zunaechst darauf bezogen, dass der Angriff auf _meinen_ Seiten initiiert wird (bzw. im Forum durch das Posten von Grafiklinks). Es ist etwas anderes ob so etwas von den offiziellen Seiten des Spiels ausgeht, oder ob es Fremdseiten sind, wenngleich natuerlich auch dort ein Risiko entsteht, ueber das man diskutieren darf. Dennoch ist es imho erst einmal wichtiger, dass das eigene Angebot vollstaendig sicher ist, da bei Fremdseiten sowieso eine Fuelle weiterer Probleme existieren (Browserluecken, siehe Firefox 3.0.2 Release gerade, WoW-User werden dir mit .cn und .ru Links ein Lied davon singen koennen).
Vielleicht mit einer Form von zeitlich limitiert gueltigem Schluessel / Encryption (mit privatem Schluessel und userbezogen) und nicht per Session?
Django verwendet pro Formular einen eindeutigen Schlüssel. Also ist ein Schlüssel einmalig und nicht auf die ganze Session ausgedehnt.
Und wie soll das technisch funktionieren? Natuerlich ist der Schluessel eindeutig, aber genau das ist doch das Problem. Speicherst du jeden einzelnen Schluessel in der Session ab? Wenn der User viel herumklickt, aber wenige Formulare letztlich abschickt, kommen da schnell einige hundert Schluessel zusammen, da du ja auch keine Timeouts < 20-30 Minuten willst (ich erinnere mal an Galaxy-news hier frueher, als man nach 15 Minuten jedes mal die "ungueltiger-Link" Nachricht bekam).
Genau das ist doch die Problematik, die meisten speichern Sessionweit EINEN Key und jedes Formular ueberschreibt den vorherigen, womit Tabbed Browsing kaputt ist.
Einzige Loesung waere eben Verschluesselung, wie von mir beschrieben, aber das ist etwas anderes/mehr als ein "eindeutiger Schluessel". Man muss den Key serverseitig reproduzieren koennen, ohne ihn zwischenspeichern zu muessen.
Ich persoenlich wuerde wohl eher darauf setzen User Input moeglichst vollstaendig zu filtern. Sollte ich nicht daran vorbeikommen, wuerde ich wohl encrypted form values/get params nutzen.
Was willst du denn da filtern? Wenn du ohne Refererauswertung arbeiten willst kannst du ja noch nicht mal filtern wo die Daten herkommen. Und das dir (bzw. deinen Nutzern) jemand gültige Eingaben unterschiebt ist ja wohl nicht sonderlich schwierig.
Ich glaube du hast die Problematik noch nicht ganz verstanden.
Wie oben beschrieben und ich kann eben sehr wohl filtern, was auf MEINEN Seiten passiert. Jegliche externe Webseite ist sowieso per se ein Sicherheitsrisiko. Das ist keine Entscheidung sich darauf auszuruhen, aber eben Realitaet. Wer heutzutage meint unbeschwert auf jeden Link klicken zu koennen, bekommt desoefteren "aufs Maul" (gerade bei einem Bekannten geschehen - eigentlich IT technisch fit, Opera-only User, neueste Version, keinerlei executable Downloads, Router, Firewall aktiv, alle Betriebssystempatches drin, sicheres Passwort, nie weitergegeben -> WoW-Account futsch, mit seinem Account in allen WoW Foren weitere China Links gespammt...).
Insofern habe ich also durchaus, wohlbemerkt nur als ersten, aber dennoch wichtigsten, Schritt eine Moeglichkeit den Content auf meiner Plattform zu filtern.