Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

1

23.01.2009, 11:47

[php] zugriff einschränken

Hi!

Ich arbeite derzeit an einer Flash Anwendung, die ein php Skript ausführt. Flash ruft die php Seiten wie ein Browser auf und holt sich die Ausgaben einfach als Text rein. Nun steh ich vor dem Problem, dass ich möglichst verhindern möchte, dass ein User die Seiten per Hand aufruft, bspw. um einen Highscore zu übertragen, andererseits Flash das schon dürfen soll. Ich kenne mich allgemein mit Webprogrammierung nicht so aus, aber es ist ja wahrscheinlich für einen geneigten Nutzer kein Problem, etwaige Passwörter, die Flash an die php Seite überträgt, auszulesen, und sie dann per Hand aufzurufen. Gibts da ne Möglichkeit, den Zugriff möglichst effizient einzuschränken?

Anonymous

unregistriert

2

23.01.2009, 11:57

Da gibt es eigentlich keine Lösung vor, vorallem da jeder eine Flash-Datei recht schnell disassemblen kann um deine Daten, wie Passwort, Datenbankverbindung usw, samt URL auslesen kann.

Wenn du willst, das niemand an die Daten kommt, müssen sie auch da bleiben wo sie sein sollen: Auf dem Server und nicht auf dem Client.

edit: Na ja, wie TrikkieMikkie schon sagte, ggf. mit Sessions, aber das ist ein sehr instabiles Verfahren, da es sich leicht aus den Angeln heben lässt.

3

23.01.2009, 11:57

Du könntest z.B. eine Session-Variable in der aufrufenden Seite setzen.
Und nur wenn die gesetzt ist, wird das Script ausgeführt.

Auch ein Edit:

Datenbankverbindung usw. sollten eigentlich auf dem Server sein.
Das Disassemblieren könnte mit Verschlüsselung der SWF erschwert werden.
Und klar, wirklich sicher ist nix.
fka tm

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

23.01.2009, 12:35

Ich habe von dem Thema fast garkeine Ahnung, aber vielleicht helfen ein paar Ideen:
-Hat nicht jeder FlashPlayer eine ID?
-kann man die Daten mit Hilfe der ID verschlüsseln, so das es zumindest kein "plaintext" ist?
-vielleicht einen "zufallsgen" im Flash nutzen, der vom Server einen Startwert erhält und dann die Anzahl der Schritte, die er machen soll. Der Wert, der als letztes rauskommt, dann als Zugangsschlüssel nutzen?

(gut, wer die Flashdatei knackt und/oder wirklich Ahnung hat, lässt sich davon wohl nicht aufhalten :evil: , aber da gibt es nie 100% Sicherheit)
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

rewb0rn

Supermoderator

  • »rewb0rn« ist der Autor dieses Themas

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

5

23.01.2009, 12:46

Okay schonmal danke für eure Ideen.
Ich denke ich werde dann auch irgendwas in der Richtung was Nox vorgeschlagen hat machen, da es relativ leicht umzusetzen ist, und zumindest schonmal verhindert, dass jedes x-beliebige Kiddie den Highscore überbietet :)

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

6

23.01.2009, 13:08

Eine Möglichkeit wäre es, falls es mit dem Spieltyp möglich ist, alle paar Sekunden den aktuellen Spielstand an den Server zu schicken und dort grob zu prüfen.
Wenn dann auf einmal ein paar tausend Punkte zu viel da sind ist da vermutlich was faul. Bei rundenbasierten Spielen sollte das gehen, bei Echtzeitspielen wird das sicherlich schon schwieriger.

Wirklich effektive Verschlüsselungsmethoden für Flash Code habe ich auch noch nicht gefunden. Die meisten zerrütteln den Code einfach ein wenig und machen Variablennamen unkenntlich etc.

hanse

Alter Hase

Beiträge: 472

Wohnort: Wien

  • Private Nachricht senden

7

23.01.2009, 20:02

Geht nicht.

Du solltest dich eher Fragen: Wieso will ich nicht das die Seite vor Hand aufgerufen wird? Wenn dort Informationenen angezeigt werden die der Flashclient nicht anzeigen würde dann versuche diese Informationen gar nicht erst zu zu senden.
Du solltest dich immer an den Grundsatz halten: All userdata is evil!

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

8

23.01.2009, 21:14

@hanse Ein Konzept/Grundsatz, was spätestens bei der Highscore ein Problem aufweißt :P
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

Helmut

5x Contest-Sieger

Beiträge: 692

Wohnort: Bielefeld

  • Private Nachricht senden

9

24.01.2009, 02:18

Wenn du dein Spiel deterministisch machst (sollte mit Flash nicht schwer sein) und du sämtliche Benutzereingaben loggst und am Ende zum Server schickst, kann der Server das komplette Spiel intern wiederholen und den Punktestand vergleichen. Ist 100% sicher, wenn das Spiel nicht gerade durch ne KI oder so geschlagen werden kann. Ist aber natürlich etwas aufwendig, da man Flash auf nem Server nicht ohne Weiteres zum Laufen kriegt.

Ciao
Sei stets geduldig gegenüber Leuten, die nicht mit dir übereinstimmen. Sie haben ein Recht auf ihren Standpunkt - trotz ihrer lächerlichen Meinung. (F. Hollaender)

Werbeanzeige