PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Javascript Variable -> PHP Variable



iixii
12-07-2005, 14:05
Hi, ich bin auf der Suche nach einer manipuliersicheren Möglichkeit um den Inhalt einer Javascript Variable in eine PHP Variable zu schreiben. Folgende zwei Möglichkeiten hatte ich schon:

1) Möglichkeit: mit window.open und Variable mit GET übertragen
(sehr unsicher - deswegen wieder verworfen)

2) Möglichkeit: mit document.write ein Formular erstellen, und dann Variable per POST übertragen (schon besser, aber da man ja das Formular sieht, kann man von irgendwo mit irgendeinem Formular die Variable einschleusen)

Konkreter Fall: ein Javascript Spiel bei dem ich das Ergebnis am Ende per PHP in eine Text Datei bzw. Datenbank schreibe. Gibt es überhaupt eine absolut sichere Methode?

mfg IIXII

nEox
12-07-2005, 21:01
Hallo iixii,

also absolute Sicherheit bei Client-seitigen Sprachen ist meiner Meinung nach nicht zu erreichen. Aber man kann es dem Betrüger so schwer wie möglich machen. Hier mal ein paar Möglichkeiten(fällt mir jetzt grade so ein, muss man aber erstmal praktisch umsetzen :))

- eine Art TAN-System. In einer PHP-Session wird ein "zufalls"-Code gespeichert der an das Javascript übermittelt wird. Dieser wird beim eintragen der Punkte-Anzahl an das PHP-Script zurückgegeben, dort abgeprüft und wieder löschen. Kannst ja bei Fehlversuchen noch nen sleep() einbauen...

Aber auch diese Lösung bringt im Prinzip nichts wenn jemand dran ist der nen bisschen Ahnung hat(Code mitsniffen, UserJavascript verwenden oder...)

- Referer prüfen(kann man genausogut fälschen, aber muss man auch erst drauf kommen, Achtung: Könnte Leute ausschließen die Referrer blocken)

- Um dir noch nen paar Scriptkiddies vom Leib zu halten kannst du dein JS auch verschlüsseln/verschleiern, d.h. ein Programm drüberlaufen zu lassen das dir z.b. die Funktion setHighScore() in xid138dsl3lsdf() verwandelt... (nennt sich Obfuscating)
Aber wie gesagt, bis auf einpaar Scriptkiddies hält das niemand davon ab.

Mehr fällt mir im Moment nicht ein...

Gruß

nEox

sagi
13-07-2005, 01:52
Gibt es überhaupt eine absolut sichere Methode?

Nein.

Du solltest sehr genau wissen, was du erwartest:

Score muss zwischen x und y liegen - ist das nicht der Fall, wird die IP für zB 15 Minuten gesperrt

Ein Spiel dauert zB 2 Minuten, also muss der Punktestand nach 1:59 - 2:15 Minuten gesendet werden - oder Sperre

etc.

Vermutlich hilft es auch, das Skript komplizierter als nötig zu gestalten.

Solche Attacken werden vermutlich nicht mit dem Browser gemacht, sondern mit Tools, bei denen man ein wenig mehr Einfluss auf die gesendeten Daten hat.

Das kannst du ausnutzen, wenn du in der Ausgabe ein Bild einbindest, welches von einen PHP Skript erstellt wird. Wird dieses Bild nicht abgerufen - also das Skript nicht ausgeführt - werden auch die Daten nicht gespeicher, da dann vermultich kein Browser am Werk ist.

mfg
c.

iixii
13-07-2005, 03:34
vielen dank für eure lösungsvorschläge. sind gewaltig. werde demnächst probieren sie schritt für schritt umzusetzten.

wen's interessiert: http://iixii.funpic.de/vorversion - Prototyp (einfach dem roten Kreis nachjagen)

mfg IIXII