[PHP/MySQL] Sicherheitskonzept für Flashgames...

BartTheDevil89

Devilution Media
ID: 87739
L
2 Mai 2006
3.960
103
Hallo,

ich bin derzeit am überlegen für ein neues Sicherheitskonzept auf www.zocko.de! Da die Games von einem Forenhack kommen kann ich an denen leider nichts verändern, aber vielleicht habt ihr ja eine Idee, was man eventuell machen könnte.
Das System macht folgendes:

Der User möchte ein Spiel starten. Daraufhin wird geschaut ob ein Game frei ist oder ob ein neues erstellt wird. Dann wird eben entweder die gameid ausgelesen oder ein neuer Eintrag erstellt und die gameid eben danach ausgelesen. Diese gameid wird dann in ner Session gespeichert. Jetzt wird das Game angezeigt, das dann am Ende mit einem Link im Game die Daten an index.php?do=arcade&result=211 schickt. Dort werden dann aus der Session die gameid gelesen und die Punkte dazu eingetragen.

Das wäre das Prinzip wie das ganze arbeitet. Natürlich hab ich jetzt auch schon ein paar Überprüfungen mit referer, session, etc. drin aber ich überlege mir da was besseres zu überlegen.

Habt ihr Vorschläge, Ideen, wie man dieses System absichern könnte, dass also keine Daten mit nem Script oder ähnliches abgeschickt werden können?
 
Du könntest die Ergebnisse des Games auch in der Session speichern und nach dem Auslesen wieder löschen. Oder habe ich da was falsch verstanden?
 
Du könntest die Ergebnisse des Games auch in der Session speichern und nach dem Auslesen wieder löschen. Oder habe ich da was falsch verstanden?

Leider nicht so ganz, da eben die Games fertig sind...im Prinzip kann ich an den Games nichts ändern. Und die haben eben einen Link drin mit dem dann die Page index.php?do=... wo dann die Punkte drin stehen, aufrufen.
 
Leider nicht so ganz, da eben die Games fertig sind...im Prinzip kann ich an den Games nichts ändern. Und die haben eben einen Link drin mit dem dann die Page index.php?do=... wo dann die Punkte drin stehen, aufrufen.

Und du willst nicht, dass die Punkte im Link drin stehen, weil man sie ja dann einfach ändern könnte. Richtig?

Ohne Änderung der Games wird das wohl in Richtung unmöglich gehen. Man könnte allerhöchstens versuchen zu tricksen. Wird der Link zur index.php automatisch aus dem Game aufgerufen? Oder muss der Spieler diesen Link extra anklicken.
Im ersten Fall könnte man versuchen zu tricksen. Wenn die index.php mit diesen Parametern aufgerufen wird, dann schreibst du die Ergebnisse des Spiels in die DB (oder wo immer die Ergebnisse drin gespeichert werden). Anschließen machst du sofort einen Redirect mittels
PHP:
header("Location: index.php");
um dem Nutzer keinen Link zu präsentieren. So sieht der Nutzer im optimalen Fall den Link garnicht und kann auch keine Daten ändern. Allerdings ist das natürlich eine sehr unsaubere Lösung, die mit etwas Wissen durchaus umgangen werden kann (oder bei einer langsamen Internet-Verbindung).
 
Hallo,

so wie es du es beschreibst ist es ja schon. Also er leitet ja schon weiter auf ne andere URL dann sofort, allerdings such ich eben was sichereres.

Aber das scheint ja nur zu gehen, wenn man in die flash-datei reinkommt. Ich hab leider nur die swf...gibts ne Möglichkeit da was dran zu ändern? Denn mir sagte jemand, dass man die fla wieder draus bilden könnte und dann müsste ich ja drin was ändern können.
 
[..]Aber das scheint ja nur zu gehen, wenn man in die flash-datei reinkommt. Ich hab leider nur die swf...gibts ne Möglichkeit da was dran zu ändern? Denn mir sagte jemand, dass man die fla wieder draus bilden könnte und dann müsste ich ja drin was ändern können.

Man kann die *.swf dekompilen, leider bin ich mir nicht sicher ob so etwas legal ist wenn man keine Rechte dazu besitzt. Habe mal irgend ein Thread auf einer anderen Seite gelesen wo wegen der Legalität gefragt wurde ;)
Ein Programm heißt meine ich "SWF Decompiler", musst du mal googlen ;)
Sone Programme liefern aber meistens schrott Code, aber dann muss man halt ein wenig länger suchen ;) Wenn du Pech hast ist die *.swf selber noch geschützt, dann bekommt man wirklich nur Müll ^^

Wenn du die FLA hast würde ich den Link umändern und dort ein Passwort oder ähnliches dranhängen ;)
Also index.php?do=...&pass=asg5d3r6ef


EDIT:
Liefern die Flashgames eigentl. einen Referrer? Dann könnte man den eventl. überprüfen, aber sicher ist es deswegen immer noch nicht ;)
 
Du hast nicht zufällig gerade den Grund im Kopf? :p
UrhG §69e: Dekompilierung fällt mir da so ganz spontan ein ;)

Denn wenn ich mir nen PHP Script kaufe kann ich den Code ja auch abändern :p
Wenn ich nen Apfel hab kann ich den in etwa gleich große Stücke wie eine Birne schneiden, eine Birne ist er deswegen trotzdem nicht. :roll:

(anderes Beispiel: einem Spiel, das du kaufst, liegt gewöhnlicherweise auch nicht der Sourcecode bei ;))

Gruß ;)
 
Ok,

also die Idee fällt dann auch weg. Damit wären wir wieder beim Ausgangsproblem.

Zwar sendet der Link einen Referer, der ja derzeit auch überprüft wird, allerdings lässt sich dieser faken und leider wird nicht bei allen Browsern der Referer verschickt, was mich eben zu einem neuen Konzept bewegt.

Habt ihr noch Ideen? Vielleicht mit Sessions, Referer, etc. ne Mischung oder was?
 
Letztendlich hast du keine Möglichkeit, da irgendetwas zutun: Mit Wireshark wird man die Kommunikation zwischen Server und Flash immer auslesen können. Flash kannst du mangels fla-Dateien nicht abändern, weshalb du auch keine Verschlüsselung (wo die Sicherheit auch mit SWFEncrypt fraglich wäre, wenn das wirklich einer knacken will, ...) einbauen kannst.

Du wirst also auf Vertrauensbasis bleiben müssen ;)
 
Zuletzt bearbeitet:
Hmh..gibts denn irgendwie die Möglichkeit aus ner Verbindung von Referer, Sessions und noch einigen anderen Kleinigkeiten wenigstens ne Variante zu machen, die es Fakern schwieriger macht?
 
nö, faken ist sogar mit Änderung an der fla kaum zu unterbinden

Ja genau das ist ja mittlerweile schon bei rausgekommen...es geht mir auch nicht darum das zu unterbinden sondern einfach so schwierig wie möglich zu machen. Eben durch so kleine Sachen wie Referer-Test, Sessionsystem, direktweiterleitung der Url, etc....und darum geht es hier, dass ich da ein gutes System bei rauskommen lassen kann.
 
Es wurde dir doch mitlerweile mehrmals schon gesagt, dass ohne Änderungen an der fla da überhaupt kein schutz möglich ist.

Zudem kann ich Referer-Check total simpel umgehen und du sperrst gut 60% User aus, da Firewalls die Referer unterbinden
 
Zudem kann ich Referer-Check total simpel umgehen und du sperrst gut 60% User aus, da Firewalls die Referer unterbinden
Erstmal das, zweitens kann man jede Kommunikation mit Wireshark genauestens nachvollziehen; du kannst also auch 10 Sessions senden, es wird dir nichts bringen ;)
 
Erstmal das, zweitens kann man jede Kommunikation mit Wireshark genauestens nachvollziehen; du kannst also auch 10 Sessions senden, es wird dir nichts bringen ;)

jup, aber nur mal angenommen ich sende meine Daten AES verschlüsselt, dann bringt dir Wireshark nix :p
dafür schaut er dann in der Fla nach ^^