IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

[FLASH 8] Passage variable Flash -> PHP cryptée


Sujet :

Flash

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 36
    Points : 26
    Points
    26
    Par défaut [FLASH 8] Passage variable Flash -> PHP cryptée
    Bonjour à tous.
    Voici une question que je pose.
    J'ai un jeu en flash et quand la personne a fini de jouer , elle clique sur un bouton valider qui envoie la variable avec le score obtenu à un page PHP.?
    Jusque là tout va bien et tout fonctionne. La seule chose que je me demandais c'est si quelqu'un arrive à connaître le nom de la variable il peut alors envoyer ce qu'il veux à la page PHP comme score et ainsi tricher...

    Il y a t'il un moyen de faire autrmement ou tout simplement de crypter la variable? En attendant la seule chose à laquelle j'ai pensé c'est de donner u nnom bizarre à ma variable mais je suis sûr qu'il y a sûrment un moyen (en analysant le header HTTP) de connaître ce nom de variable.

    Merci d'avance

  2. #2
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Points : 1 186
    Points
    1 186
    Par défaut
    Bonjour,

    En plus de la variable contenant le scrore , tu peux envoyer une autre variable qui elle contien un code indiquant si le score est de source valide.

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    send_lv:LoadVars;
    send_lv.scrore=1554;
    send_lv.valide="a215sfd564f12ez547df87"; // wé .... pas top l'exemple
    PS: avant meme de chercher le nom de la variable contenant le scrore, il faut connaitre l'url de ton fichier php.
    De toute facon , si le gars (ou la fille ) sais deassembler un swf c mort ... mais a ce stade , qui ferrai ca ?
    ___________________________________________
    S'il fallait permettre aux autres tout ce que l'on
    se permet à soi-même, l'existence serait intenable.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    Oui c'est une bonne idée mais le problème reste le même. Si le hacker découvre la variable avec le Score il découvrira aussi la variable avec le code de vérification.

    Je pensais plûtot à un truc du genre : J'ai ma variable que je crypte avec une chaine définie et que je décrypte dans ma page php avec la même chaine. Mais je ne sais pas si c'est possible de faire ca et surtout d'avoir une fonction qui est la même en flash et en php au niveau du cryptage

  4. #4
    Rédacteur

    Avatar de arnolem
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 856
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 856
    Points : 6 114
    Points
    6 114
    Par défaut
    si il décrypte ton code, il aura aussi acces a ta fonction de cryptage, il peux toujours crypter un score plus élever et le renvoyer, se qu'i lfaut savoir c'est que si tu ne définie pas de domaine, il y a des regles de sécurité qui empeche a flash de communiquer hors de sont domaine. je suis fatiqué et je voudrais pas te dire de bétises car j'ai un gros doute mais si tu utilise 2 variables, un ID et le score, le joueur peux décrypter le swf et le recompiler avec le code ID et un nouveau score, mais logiquement, sont swf ne peux pas communiquer avec un script de ton serveur ! (euh non la je dis peut etre une connerie)

    bon sinon une autre solution est de bruiller les pistes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jeu.swf --> transition.swf --> enregister.php --> base.sql
    tu peux rajouter une etape avec un swf qui recois le score uniquement a partir d'un swf qui est sur le meme serveur et qui ecris grace a ton php.

    Si tu veux tester se truc de ouf, tient moi au courant, je suis curieux

  5. #5
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Points : 1 186
    Points
    1 186
    Par défaut
    ce dont a quoi je pensais ....
    mais avant, je pense qu'il faut se poser une question : quel moyen doit
    mettre en oeuvre le cracker pour pouvoir tricher ?
    a partir de quel moment ca vaux le coup de se prendre la tete a cracker ton jeux ?

    rep: a partir du moment ou ca irrait plus vite de cracker les score plutot
    que de jouer (et de taper des betes de score) . on se donne un mois...

    Il faut donc trouver un systeme de securité neccessitant plus d'un mois a
    etre contourner (on va essayer de faire plus bien sur

    | SERVER | => transfert du jeux .swf=>| CLIENT |
    |________| <= transfert des scores <= |_______|

    Pour le transfert du jeux :
    -il serrai utile d'enregistrer dans un table tamporaire de Base de Donnée(BD) un Identifiant
    unique en y associant l'IP du client.
    Ce-ci permet de valider la provenance du jeu a la reception du scrore: notre server donc notre .swf
    L'Identifiant unique serai donc créer par php et envoyer au jeu a son commencemant.
    Ce que j'appel "identifiant unique" est un nombre (ou clef) qui ne serra utiliser qu'une seul fois(jusqu'a epuissement du stock)

    Pour le transfert des scores:
    -Le .swf envoi au server (php) le scrore et l'identifiant unique qui lui a été attribué lors du chargment du jeux.
    Puis PHP regarde dans sa Base de Donnée(BD) si l'identifiant unique et l'IP recuperé du client corespondant.
    Si oui : PHP enregistre le score dans sa BD.

    Vous remarquerez que nous utilisons une BD et non une session php pour conserver les variables rattachées a un client.
    Je pense qu'allé plus loing serrai faire preuve de psycozZ
    Néanmoins, on pourai ajouter une connection securisé (https)

    _____________________________________________
    La meilleur securité, c'est celle que tout le monde voie.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    Tout d'abord merci pour votre aide.

    Je pense que l'on va avoir le même problème avec la passage de l'identifiant car c'est aussi une variable en clair que le hacker pour récupèrer.

    Et pour info, j'ai demandé à un copain et il a su cracker le jeu. Il suffit d'utiliser un packet sniffer et voir les variables qui sont passée en POST entre le flash et PHP...

  7. #7
    Inactif Avatar de CR_Gio
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 195
    Points : 1 186
    Points
    1 186
    Par défaut
    et bien ajoute un connection https ...

    De toute facon , faut pas se leurer, ton jeu sera toujours crackable.
    La seule chose que tu peux faire, c'est de limiter les gen qui peuve le faire.

    PS: si ton ami arrive a cracker ton jeu , et bien demande lui de le securisé.
    sans oublier de nous donner de tes nouvelle ( comme tu la fait il n'y a pas 30minute)
    ______________________________________________
    Ce qui fait mal sur un forum c de se faire jeter son post ;-)

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par CR_Gio
    et bien ajoute un connection https ...

    De toute facon , faut pas se leurer, ton jeu sera toujours crackable.
    La seule chose que tu peux faire, c'est de limiter les gen qui peuve le faire.

    PS: si ton ami arrive a cracker ton jeu , et bien demande lui de le securisé.
    sans oublier de nous donner de tes nouvelle ( comme tu la fait il n'y a pas 30minute)
    ______________________________________________
    Ce qui fait mal sur un forum c de se faire jeter son post ;-)
    Pour faire une connection HTTPS, il faut un certificat SSL non? Hors c'est payant donc cela ne m'intérrèsse pas trop...

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    Une autre solution serait d'écrire les infos dans un fichier sur le serveur qui porterait le nom du user. Vous en pensez quoi?

  10. #10
    Membre émérite Avatar de dom_dev
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 073
    Points : 2 338
    Points
    2 338
    Par défaut
    bonjour,
    en résumé le problème serait d'avoir une fonction qui s'execute simultanément de la même façon sur flash et sur php et qui rajouterai une clé "pseudo" aleatoire dans chaque post. Le haker aurait bien la clé pour un "post" donné mais n'aurai pas la clé du "post" suivant qu'il veut truquer ?
    J'ai dit une bêtise ??
    Au cas ou je n'ai pas dit une annerie grosse comme moi il reste quand même à inventer cette fonction miracle !!
    Si la ou les réponses obtenues vous ont donné satisfaction n'oublier pas ->
    Et ne rajoutez pas de nouvelles questions éternellement dans le même post surtout si vous en n'êtes pas l'auteur
    MERCI

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2003
    Messages : 36
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par dom_dev
    bonjour,
    en résumé le problème serait d'avoir une fonction qui s'execute simultanément de la même façon sur flash et sur php et qui rajouterai une clé "pseudo" aleatoire dans chaque post. Le haker aurait bien la clé pour un "post" donné mais n'aurai pas la clé du "post" suivant qu'il veut truquer ?
    J'ai dit une bêtise ??
    Au cas ou je n'ai pas dit une annerie grosse comme moi il reste quand même à inventer cette fonction miracle !!
    Non tout à fait , c'est pas une connerie.
    Le truc serait de générer une clé que l'on insère dans une base de donnée avec le nom du joueur, ensuite on appelle le flash qui doit aussi générer la même clé. ensuite dans la page de validation on check si la clé est la même que celle dans la base de donnée.

  12. #12
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 56
    Points
    56
    Par défaut
    Je reviens sur cette discusion car j'ai un peu ce problème.

    J'ai sécurisé mon site en https mais lorsque je fais communiquer flash avec php par un LoadVars j'utilise http.

    lv = new LoadVars();
    lv.mavar = "toto";

    lv.sendAndLoad("http://www.monsite.com/test.php", lv, "POST");


    Donc je suis en https sur mon site mais lorsque j'envoie les données c'est en http et la quelqu'un peut facilement capter les paquets http.

    Je me demande aussi si cela est important de sécuriser plus que cela?
    Je fais un e-commerce et le paiement de la transaction se fait sur le site de la banque.
    Ce que je ne voudrais pas c'est qu'un pirate au moment de l'envoie ou l'on valide la commande modifie le montant de la commande. ce qui ferait que j'envoie des infos fausse à la banque (prix a 1 euro au lieu de 60 par exemple).

    Le déroulement de validation:
    En gros on arrive sur notre page flash de validation, on a un prix sauvé en session. on valide sur la page flash ce qui envoie au script php 'ok', la on enregistre en base de données et on envoie a la banque des données chiffrées.

    Du coup si le pirate glisse une étape entre la validation et l'enregistrement en base cela pose problème. Mais je vois pas comment il pourrait faire. Si quelqu'un sait??

  13. #13
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    87
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 87
    Points : 56
    Points
    56
    Par défaut
    C'est bon j'ai trouvé:

    Salut, je poste la réponse ici car elle est bien référence dans Google... et bien que la réponse ai déjà été donnée un peu partout sur Internet.
    Donc pour ceux qui veulent publier un swf sur du https ( ssl ),
    il faut modifier la ligne
    codebase=http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0
    en
    codebase=https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0
    et la ligne
    pluginspage="http://www.macromedia.com/go/getflashplayer"
    en
    pluginspage="https://www.macromedia.com/go/getflashplayer"
    donc c'est simple il faut juste modifier http par https.

    Maintenant je vais un peu plus loin pour ceux qui voudrait faire des appels loadvars (dans ce swf sécurisé) vers un script php sur https car j'ai rencontré une erreur sur Internet Explorer.
    Le problème peu survenir si vous appelez (par loadvars) une fichier php sur https qui contient un session_start(). Sous Internet Explorer vous aurez un plantage du chargement.
    La solution est qu'il faut ajouter les lignes suivants après le session_start() :

    header("Cache-Control: public");
    header("Pragma:");
    header("Expires: 0");

    avec ca vous allez maintenant pouvoir faire des appel https par loadvars sur des script php qui contiennent des session_start().

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1
    Points : 2
    Points
    2
    Par défaut
    ..

Discussions similaires

  1. Passage variable Flash -> Javascript
    Par tepaze dans le forum Flash
    Réponses: 2
    Dernier message: 09/01/2014, 17h47
  2. passage de variables de flash MX ( année 2002 ) à MySql par Php
    Par jitep dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 13/10/2009, 14h34
  3. Passage de variables Flash/PHP
    Par Jiraiya42 dans le forum Flash
    Réponses: 4
    Dernier message: 04/11/2007, 14h12
  4. [FLASH 8] Récupération variables flash
    Par arnaud_verlaine dans le forum Flash
    Réponses: 46
    Dernier message: 20/06/2006, 10h56
  5. [FLASH MX2004] Passage variable PHP<->Flash
    Par PeZ dans le forum Flash
    Réponses: 4
    Dernier message: 03/04/2006, 14h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo