Hodi: Ajax

Guten Abend liebe Gemeinde,

bräuchte mal kurz einen Rat. Ich entwickle gerade ein Online-Spiel, welches clientseitig im Browser abläuft und dessen jeweiliges Spielergebnis nach GAME OVER automatisch per Ajax an einen Server übermittelt wird. Anfänglich werden gewissen Spieldaten (Charakterdaten, Teamdaten, Map, Ligawerte, etc) aus einer DB geladen. Aus diesen Daten wird das Javascript-Programm zumindest partiell zusammengebaut und dann an den Client gesendet. Der Client selbst ist  in keinerweise authentifiziert, er ist also anonym. Im Spiel gibt es keine Möglichkeit der Interaktion, das Programm läuft also nur vor Augen des Users ab. (Später wird ein Wettsystem implementiert werden). Es ist also eine Art Ligaspiel.

Es werden im Spielverlauf, der zufallsgesteuert abläuft, verschiedene Variablen mit Werten belegt. Z.b.
a=3
p=3334.3
c=43.3
..

und dann _nach_ Spielende per AJAX-REQUEST an den entsprechenden Server gesendet.

Das Problem an der ganzen Sache ist natürlich, dass das Spielergebnis resp. die anschliessende Datenübermittlung nicht fälschungssicher ist. Potentielle Cracker/Hacker könnten problemlos das Ergebnis fälschen und den REQUEST z.B. manuell absenden.

Anhand verschiedener Zeitfensters oder irgendeiner Session könnte man zumindest den potentiellen Schaden begrenzen, aber nicht gänzlich verhindern.

Was könnte man noch unternehmen, um den Mißbrauch etwas einzudämmen?

Gruß
Hodi

  1. Hi,

    Das Problem an der ganzen Sache ist natürlich, dass das Spielergebnis resp. die anschliessende Datenübermittlung nicht fälschungssicher ist. Potentielle Cracker/Hacker könnten problemlos das Ergebnis fälschen und den REQUEST z.B. manuell absenden.

    Was könnte man noch unternehmen, um den Mißbrauch etwas einzudämmen?

    Mit einer offen einsehbaren, clientseitigen Technik wie JavaScript - gar nichts.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. Hi,

      Was könnte man noch unternehmen, um den Mißbrauch etwas einzudämmen?

      Mit einer offen einsehbaren, clientseitigen Technik wie JavaScript - gar nichts.

      sehe ich genauso. Das ist natürlich ein Problem. Ich werde um eine Authentifizierung und eine Art Ticketsystem nicht umhinkommen. Bei Unregelmäßigkeiten wird das entsprechende Konto gesperrt.

      Hodi

    2. moin,

      Mit einer offen einsehbaren, clientseitigen Technik wie JavaScript - gar nichts.

      Genauso isses. Es gäbe jedoch die Möglichkeit, die Komunikation zwischen UA und Server über ein Applet abzuwickeln, die ist dann nur noch per tcpdump durchschaubar, sofern das nicht über ein secure socket läuft. Auf jeden Fall braucht es eine Beziehung zum Endgerät, also eine Session und der Aufbau einer Solchen darf nur an der Startposition des Spiels möglich sein.

      Viele Grüße,
      Horst Appledt

      1. Hi!

        Mit einer offen einsehbaren, clientseitigen Technik wie JavaScript - gar nichts.
        Genauso isses. Es gäbe jedoch die Möglichkeit, die Komunikation zwischen UA und Server über ein Applet abzuwickeln, die ist dann nur noch per tcpdump durchschaubar, sofern das nicht über ein secure socket läuft.

        Was nützt eine verschlüsselte/verschleierte Übertragung, wenn man während des Spieles sowie bevor das Applet übernimmt, mit Firebug munter und fröhlich Javascript-Gegebenheiten manipulieren kann?

        Lo!

        1. hi,

          Was nützt eine verschlüsselte/verschleierte Übertragung, wenn man während des Spieles sowie bevor das Applet übernimmt, mit Firebug munter und fröhlich Javascript-Gegebenheiten manipulieren kann?

          Gar nichts. Das ganze Spiel muss als Applet laufen und das Applet kommuniziert mit dem Server.

          Hotti