Actionscript 3.0 -> PHP -> MySQL beveiligingsprobleem met een game-applicatie

Ik ben van plan om een ​​game te maken met actionscript 3.0 (flash). Ik ondervind echter een aantal beveiligingsproblemen bij het opslaan van gebruikerspunten.

Om meer specifiek te zijn, lees hieronder en je zult begrijpen wat precies het probleem is.

  1. U start mijn flash-applicatie. PHP maakt een sessie voor uw gebruikersnaam. Speel een paar minuten en bereik 750 punten.
  2. U klikt op de knop "Mijn punten opslaan"
  3. Het verbindt "game.php? points = []" met uw puntbedrag, vandaar game.php? points = 750.
  4. PHP maakt verbinding met MySQL en voert een update/invoegquery in met de gebruikersnaam die je hebt ingevoerd bij het openen van de applicatie, en krijgt de punten met $ _GET ['punten'] zoals je op 3 kunt zien.

Het probleem is, Iedereen die direct door "game.php? Points = 999999999999" kon bladeren, zou zijn punten in de database laten opslaan.

Ik dacht aan het coderen van de punten, echter, Flash is een client-side applicatie en iedereen zou de "punten" waarde kunnen veranderen met een applicatie zoals "Cheat Engine". Zodra ze de punten hebben gewijzigd, worden gecodeerde punten automatisch gegenereerd door Flash.

Ik heb ook nagedacht over het maken van een privésleutel voor elke speler bij het aanmelden en dienovereenkomstig coderen, maar het zal ook niet werken, omdat een gebruiker zijn punten met Cheat Engine wijzigt. Flash versleutelt de punten automatisch met een gegeven privésleutel, dus een andere nutteloze theorie ...

Sommige mensen stelden me voor om SSL te gebruiken, alleen omdat populaire bedrijven zoals Zynga het gebruiken, maar ik ben op zoek naar andere theorieën hier.

Eventuele ideeën over deze zaak, behalve het gebruik van SSL?

Ps. De game wordt een MMO, dus het veiligstellen van datatransacties is essentieel.

2
@weltraumpirat Dat is geenszins een oplossing, je zou deze reactie moeten verwijderen.
toegevoegd de auteur rook, de bron
@weltraumpirat je recht op de vraag. het antwoord is echter pijnlijk onjuist.
toegevoegd de auteur rook, de bron
@Rook ik wil verschillen. De vraag is bijna identiek en het geaccepteerde antwoord omvat alles wat hieronder werd gezegd.
toegevoegd de auteur weltraumpirat, de bron
@Rook het opnieuw lezen. Het itereert alle mogelijke vormen van codering - en stelt vervolgens vast waarom ze niet zullen helpen, en wat er nog meer kan worden gedaan. Het is een van de beste antwoorden die ik heb gezien op SO, en het kreeg niet meer dan 200 stemmen voor niets ...
toegevoegd de auteur weltraumpirat, de bron

2 antwoord

Voor een echte veilige aanpak moet je de logica van je game zo veel mogelijk naar de server verplaatsen en idealiter de flash-film slechts een interface maken om de huidige status van het spel aan de gebruiker te tonen.

Bekijk Yeldarb's bericht in deze thread voor een goede uitleg.

1
toegevoegd

First of all SSL doesn't help you at all. It sounds like you have never heard of Tamperdata.

Dit is een klassieke schending van CWE-602 . Cryptografie lost deze problemen niet op omdat de aanvaller meer controle over de toepassing heeft dan jij. Er is geen plaats om een ​​geheim te verbergen.

0
toegevoegd