| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jan 2011
Beiträge: 90
| Woher kommen Daten (PHP / SWF)
Hallo zusammen! Eine Frage, woher weiss mein PHP-Script auf dem Server, dass an der SWF-Datei auf dem Client keine Manipulationen vorgenommen wurden. Bin mir da nicht so ganz sicher, denn wie ich es verstehe kann man die SWF "cracken" und sieht dann ja die Wege der Kommunikation mit dem PHP Script. So könnte man ja zB das Ergebnis von Spielen (geschafft / nicht geschafft) ganz einfach immer als "geschafft" an den Server übertragen und bräuchte sie gar nicht mehr zu spielen. Würd mich freuen, wenn mir hierzu jemand helfen könnte und einen Denkansatz gibt. Grüße und Danke Schiggi |
| | |
| | #2 (permalink) |
| Flashworker Registriert seit: Nov 2001 Ort: Wiesbaden
Beiträge: 10.945
|
Hallo, ganz sicher bekommt man das sowieso nicht, man kann nur die Hürden so hoch legen, dass es sehr schwierig wird. Auch wenn du sicherstellst, dass der Aufruf von deiner SWF kommt, kannst du nicht sicherstellen, dass die übertragenen Werte nicht ausgetauscht werden. Die sauberste Variante ist immer, dass sämtliche Punkteberechnung und Spiellogik auf dem Server stattfindet und Flash nur zum Anzeigen genutzt wird. Ich weiß ja nicht, was du für ein Spiel du genau hast, daher ein Beispiel: Bei jedem Treffer wird ein Aufruf an den Server übertragen, dieser zählt die Punkte mit. Am Ende kann man so beispielsweise die Werte abgleichen. Wie du vielleicht merkst, kann man natürlich jetzt einfach die Aufrufe faken. Wenn man das Gedankenspiel weiter spielt, übergibt Flash nur die Eingaben vom Spieler und auf dem Server wird ausgewertet, ob ein Punkt erzielt wurde oder nicht. Zusätzlich kann man beispielsweise noch verschlüsselte Werte/Keys übergeben, die abgeglichen werden. Wobei ein Decompiler hier natürlich auch schon relativ viel verraten kann. Das ständige abgleichen mit dem Server kann je nach Spiel natürlich sehr den Server belasten, teilweise ist bei Spielen eine Echtzeitkommunikation notwendig, wofür du dann einen entsprechenden Server brauchst. Bei den meisten Dingen reicht es aber, dass man die Kommunikation möglichst schleierhaft gestaltet. Es wird niemand großen Aufwand betreiben, wenn es nur um eine einfache Highscore geht. Wenn es um Gewinne/Geld geht, sieht die Sache schon wieder anders aus. Grüße Geändert von sebastian (29-10-2011 um 10:26 Uhr) |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Jan 2011
Beiträge: 90
|
HI sebastian vielen herzlichen Dank für Deine schnelle und umfangreiche Antwort. Problem ist, die Spiele sollen a.) nur 1x gespielt werden können und es soll sicher gestellt sein, dass nur dann in der Datenbank "Gewinner" steht, wenn er dieses Spiel auch tatsächlich beim 1x spielen gewonnen hat. Es geht eigendlich daher nicht um Higscores oder Punkte sondern nur darum sicher zu stellen, dass er das Spiel nur 1x ausführt und dieses dann "gewonnen | verloren" an das PH Scritp berträgt. Am meisten Kopfzerbrechen bereitet einem natürlich die Möglichkeit die Dateien mit einem Decompiler einzusehen und dann das PHP Script direkt aufzurufen, also nicht über den SWF Film um dieser dann mitzuteilen, dass das Spiel gewonnen wurde. Grüße Schiggi |
| | |
| | #4 (permalink) |
| Flashworker Registriert seit: Nov 2001 Ort: Wiesbaden
Beiträge: 10.945
|
Hallo, es spielt keine Rolle, ob es nun Punkte sind oder andere Faktoren. Von irgendwelchem Faktoren hängt es ja ab, ob das Spiel gewonnen wurde oder nicht. Und diese Faktoren könnten eben serverseitig überprüft werden. Bei einem Quiz wird z.B. niemals die richtige Antwort ans Frontend übertragen, sondern nur im Backend abgeglichen. Und mach dir um den Decompiler erstmal keine sorgen, die Kommunikation kann man viel einfacher auslesen und manipulieren, da muss man an die SWF nicht ran. Und zu der Sache mit 1x spielen: Das bekommst du mit keiner Sperre der Welt hin, du müsstest schon die Personalien überprüfen. Mit IP Sperre, Cookies und ähnlichen Maßnahmen kannst du es aber versuchen. |
| | |
| | #5 (permalink) |
| Neuer User Registriert seit: Jan 2011
Beiträge: 90
|
Hi sebastian vielen Dank nochmals - ich werd mein bestes geben, die Sache zumindest zu erschweren bzw. so zu gestalten, dass es einfach ist das Spiel zu gewinnen, statt es zu "hacken! Grüße und nochmals vielen Dank Schiggi |
| | |
| | #6 (permalink) | |
| Keine Panik Registriert seit: Apr 2010 Ort: Düsseldorf (im ernst)
Beiträge: 1.868
|
wenn du dir die Kommunikation zwischen Broser und Server ansehen willst, schau dir mal das FF-Addon HttpFox an. (um ein gefühl zu bekommen, wie simpel das auszulesen ist) Zitat:
wenn du ein Cookie nutzt um zu erkennen, ob der Benutzer schonmal da war: das kann gelöscht werden (egal ob Browser-Cookie oder LSO). das muss noch nichtmal böswillig sein. die IP kannst du auch nicht verwenden, da die meisten Anschlüsse eine dynamische IP haben. spätestens am nächsten Tag ist die IP schon nicht mehr gültig. imo die einzige Möglichkeit das zu realisieren ist eine Spielnummer zu generieren, diese in einer Datenbank nachzuhalten, und darüber sicherzustellen dass diese nur einmal benutzt werden kann (im Grunde wie ein eindeutiger Gutscheincode). Das ist erstmal nicht so schwer zu bauen, aber jetzt musst du dich darum kümmern, dass jeder potentielle Spieler nur einen Gutscheincode erhält. wenn jetzt deine Zielgruppe alle Besucher deiner Seite sind kannst du das vergessen. wenn deine Zielgruppe aber bspw Geschäftskunden sind, denen du bspw jeweils einen Pool an Codes zukommen lässt, dafür ist das ganze geeignet. nun kann es zwar immer noch vorkommen, dass in einer solchen Firma ein und dieselbe Person zwei oder paar dieser Codes nutzt, aber der Vorrat ist doch arg begrenzt. oder du behältst das im Hinterkopf und überdenkst nochmal das Konzept des ganzen, so dass es nicht mehr so schlimm ist, wenn jemand öfters spielt. alles andere hat dann schon sebastian gesagt. - keine Ergebnisse vom Server an den Browser senden - keine Entscheidungen aufm Client ausführen, sondern wirklich nur "Events" an den Server schicken, und der liefert den aktuellen Zustand des Spieles zurück (bspw Antwort war richtig, nächstes Level starten, oder wasauchimmer) - und gültig ist immer nur der Punktestand/zustand aufm Server, nicht der aufm client! | |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Jan 2011
Beiträge: 90
|
HI thomas_E erstmal danke für Deine Antwort. Leider kann ich das Konzept nicht überdenken, da es schon "in Stein gemeisselt wurde". Die Idee mit den "Gutschein-Codes" gefällt mir - da der Spieler sich vorher registrieren muss und nur nach erfolgreichem Login das Spiel zu Gesicht bekommt, denk ich dass in dieser Richtung die Gutscheinlösung funktioniert. *grübel* Vielen Dank für den Hinweis Schiggi |
| | |
| | #8 (permalink) |
| . Registriert seit: Aug 2001 Ort: wien/regensburg
Beiträge: 1.652
|
per email-adresse? jeder, der spielen muss, gibt seine emailadresse an, an die wird dann der gutscheincode geschickt. die adressen speicherst du in einer db oder textfile und wenn eine emailadresse schon war, bekommt er einen hinweis, dass das nur einmal geht... oder so... lg kws
__________________ 350 * youtube für alle, die noch keinen dropbox-account haben, aber einen wollen: http://db.tt/wZ3S1pr bringt uns beiden +500mb, thx! |
| | |
| | #9 (permalink) |
| Inventar Registriert seit: Jul 2002
Beiträge: 6.882
|
Nein E-Mail ist nix. Seiten wie 10 Minute Mail bieten temporäre E-Mail-Adressen an wo jeder beliebig viele Male registrieren kann.
__________________ (\__/) (='.'=) (")_(") |
| | |
| | #10 (permalink) |
| . Registriert seit: Aug 2001 Ort: wien/regensburg
Beiträge: 1.652
|
stimmt... selbst schon benutzt... dann also doch facebook connect ![]() (gibts eigentlich schon g+ connect?)
__________________ 350 * youtube für alle, die noch keinen dropbox-account haben, aber einen wollen: http://db.tt/wZ3S1pr bringt uns beiden +500mb, thx! |
| | |
| | #11 (permalink) | ||
| Keine Panik Registriert seit: Apr 2010 Ort: Düsseldorf (im ernst)
Beiträge: 1.868
| Zitat:
nix mehr mit per email versenden und trara und du musst die nichtmal mit selbst verteilen. aber wie schon oben geschrieben, solche temporären email-adressen sind super leicht genutzt, und auch bei Diensten wie gmx oder web.de dauert es nicht so lange sich einen neuen email-account anzulegen, den für diesen einen zweck zu nutzen und dann zu vergessen. also, wie geschrieben. du kannst nicht sicherstellen, dass jeder benutzer nur einmal spielt, du kannst es nur reduzieren/erschweren (zu mogeln), und die Konsequenzen reduzieren. Zitat:
![]() und damit teilweise die ganze Arbeit für die Katz war | ||
| | |
| | #12 (permalink) |
| Neuer User Registriert seit: Jan 2011
Beiträge: 90
|
Hi zusammen Danke nochmals für die vielen Anregungen - es wird tatsächlich auf eine Db mit use_id usw. rauslaufen und auch einen Facebook-conntect ist angedacht ... Eigendlich sollte die Idee doch klappen wenn der Usr zum erstenmal die swf aufruft wird ihm ein Eintrag in die DB geschrieben, der besagt, dass das Spiel aufgerufen (und somit auch gespielt?) wurde. Gleichzeitig frägt die SWF ab, ob bereits ein Eintrag existiert - falls ja, kann er das Spiel nicht mehr spielen, falls nein, kann er es spielen. Fraglich nur was passiert, wenn während des Spiels die Verbindung zum Internet abbricht und er zwar gespielt aber weder gewonnen, noch verloren hat ... dann steht zwar in der DB, dass gespielt wurde, aber tatsächlich wurde ja eigendlich nur der Versuch unternommen zu spielen. Evtl über einen Abgleich von "gespielt" und "gewonnen ja|nein" . . so sollte es doch eigendlich recht sicher klappen, dass mir keiner 2x spielt Grüße und nochmals Danke Euch allen Schiggi |
| | |
| | #13 (permalink) | ||
| Keine Panik Registriert seit: Apr 2010 Ort: Düsseldorf (im ernst)
Beiträge: 1.868
| Zitat:
und an der Stelle erstellt PHP direkt einen Eintrag in der DB, dass das Spiel gestartet wurde. die SWF hat hier keinerlei entscheidungsgewalt; die spielt einfach nur. Zitat:
(das macht sicher auch den Spielern mehr spass, als von vorne anzufangen, gerade bei erfolgsorientierten Spielen) Geändert von thomas_E (30-10-2011 um 02:04 Uhr) | ||
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| videocamera get.... woher kommen die daten | ballaballa | Flash Einsteiger | 0 | 28-09-2006 09:41 |
| woher kommen Daten auf neuer HD!?! | jerry main | Am Rande | 30 | 28-01-2006 11:27 |
| Woher kommen die Sounds? | The'M' | Flash MX 2004 | 5 | 06-12-2005 15:14 |
| woher kommen die "\\" in gespeicherter txt ? | firlefanz | Flash MX | 4 | 09-04-2005 16:03 |
| Daten kommen im swf nicht an... | BadBoyBo | ActionScript 1 | 3 | 10-06-2002 15:17 |