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/Flex Discussion :

Réaliser des jeux sécurisés (multijoueur avec score)


Sujet :

Flash/Flex

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    410
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 410
    Points : 90
    Points
    90
    Par défaut Réaliser des jeux sécurisés (multijoueur avec score)
    Bonjour,

    J'aimerais savoir comment il est possible aujourd'hui de développer des jeux genre un tétris où les joueurs s'affronteront pour avoir le meilleur score possible sous forme d'un petit tournoi. Donc le jeu doit être sécurisé pour éviter les triches. Si le jeu est en javascript pur il sera facile pour un tricheur de contacter le serveur php/mysql pour générer un score bidon. Je connais le SWF mais ça semble fini, le HTML5 est la nouvelle voie moderne il semble mais cela ne me semble pas du tout sécuriser pour ce genre de chose. Que me proposeriez vous ?

    Et enfin, connaissez vous des gens qui auraient développé des jeux de ce genre soit des petits jeux funs pour permettre aux gens de jouer les uns contre les autres avec gestion des scores (lots à gagner pour les meilleurs). Je gère côté serveur avec PHP et MYSQL

    Merci

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Quelle que soit la technologie, il est facile pour quelqu'un de malintentionné de sniffer le réseau pour trouver la requête envoyée au serveur et donc de tenter d'envoyer ses propres score. Du coup, peu importe la technologie (HTML ou SWF), il faudra trouver un moyen de sécuriser.
    Vous pouvez envoyer tout un historique de la partie au serveur et celui-ci calcul le score, ou alors, vous pouvez trouver un moyen de faire une clé qui permet soit de valider le score, soit de la calculer.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    410
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 410
    Points : 90
    Points
    90
    Par défaut
    Tu connais quelqu'un qui ferait des jeux type MACH3, TETRIS ou jeux de voiture etc... ?
    La technologie FLASH il me semble qu'elle n'était plus prise en compte par les navigateurs et donc obsolète j'ai rêvé ?
    Je pense qu'il est plus facile de pirater un jeu en HTML5 qu'un jeu FLASH surtout que j'avais lu qu'il existait un moyen de faire du mysql directement dans flash donc sans passer par php
    Développer avec UNITY ne serait-il pas une bonne idée sachant qu'en plus cela permet de faire des jeux pour le web mais aussi pour android et ios ?

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Citation Envoyé par pas30 Voir le message
    La technologie FLASH il me semble qu'elle n'était plus prise en compte par les navigateurs et donc obsolète j'ai rêvé ?
    Oui, c'est une technologie morte.

    Citation Envoyé par pas30 Voir le message
    Je pense qu'il est plus facile de pirater un jeu en HTML5 qu'un jeu FLASH surtout que j'avais lu qu'il existait un moyen de faire du mysql directement dans flash donc sans passer par php
    Si HTML5/PHP (et autre) n'étaient pas sécurisable, il n'y aurait pas de site Web tel que Paypal, Amazon, les banques... Il faut réfléchir et bien concevoir l'application pour qu'elle soit sécurisée.

    Citation Envoyé par pas30 Voir le message
    Développer avec UNITY ne serait-il pas une bonne idée sachant qu'en plus cela permet de faire des jeux pour le web mais aussi pour android et ios ?
    Oui, un moteur de jeux vidéo comme Unity, Godot, Game Maker, Construct est une solution valide.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    410
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 410
    Points : 90
    Points
    90
    Par défaut
    Tu me conseillerais lequel ? Unity ?
    Si on veut pouvoir développer sur le web et android en même temps et donc permettre de faire un jeu sur mon site et sur mon appli mobile, quel sera le meilleur choix ?

    Enfin, est-ce que tu connais des développeurs sérieux de jeux ? J'envisage de mettre un jeu de MATCH 3 type CANDY CRUSH et tout type de jeux fun genre MEMORY, TETRIS, des jeux fun pour que les joueurs puissent avoir le meilleur score possible et les meilleurs auront des lots. J'ai donc une connexion entre le jeu et PHP/MYSQL ou MYSQL seul qui devra être sécurisé pour éviter qu'un tricheur valide un score qu'il n'aura jamais fait.

  6. #6
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    la solution la plus simple que je vois pour ton probleme est l'utilisation de sockets (nodeJS) pour avoir une connection "live" des jeux qui se deroulent

    cote serveur : tu fais tous les calculs : generation de la prochaine piece & recuperation des touches appuyees
    cote client : tu fais l'affichage + actions

    a chaque fois qu'un joueur appuie sur une touche pour controller la piece, tu fais reagir le jeu comme il se doit, mais en plus, tu envois l'info au serveur : le serveur verifie si l'action est possible : si ce n'est pas le cas, tu mets fin a la partie, sinon, tu calcule le score du joueur (toujours cote serveur)
    => le client & le serveur ont donc chacun une "copie" reelle de la partie en cours... mais tous les calculs reels sont fait sur le serveur

    le score final pour les resultats sera donc calcule par le serveur & non par le client
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  7. #7
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Je ne conseille pas de moteur spécifique. Veuillez lire cet article pour comprendre pourquoi (TL, DR : pour pouvoir choisir, il faut faire un prototype).
    Pour le reste, ce que présente Doksuri est le chemin à prendre. Toutefois, il ne faut pas trop faire de lien entre le client et le serveur, sinon la latence et les déconnexions pénaliseront le plaisir de jouer.

    Et pour conclure, je dirai aussi : faites déjà votre jeu avant de penser sécurité. Car si pas de jeu, avoir pensé à la sécurité ne servira à rien.
    Ah! et aussi, ... ça ne sert votre premier problème sera d'avoir un jeu fun et accrocheur. C'est aussi très difficile de réussir cela.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  8. #8
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Quelle que soit la technologie, il est facile pour quelqu'un de malintentionné de sniffer le réseau pour trouver la requête envoyée au serveur et donc de tenter d'envoyer ses propres score.
    d'accord supposons que j'utilise Sharkwire par exemple et que je "sniffe" des paquets est-ce que je peux les modifier en live là j'ai des doutes.
    Surtout avec le protocole https en principe c'est pas possible.
    Faut étudier le problème

    Citation Envoyé par LittleWhite Voir le message
    Et pour conclure, je dirai aussi : faites déjà votre jeu avant de penser sécurité. Car si pas de jeu, avoir pensé à la sécurité ne servira à rien.
    là j'approuve cet avis à 200%
    Dans un premier temps faut se préoccuper de la réalisation du jeu bref comme dirait l'autre ne pas mettre la charrue avant les bœufs...
    parce que produire un jeu là c'est tout un truc on n'est pas certain d'en ressortir vivant.

    Ceci dit oui considérer les questions de sécurisation en phase de pré-production c'est utile tout de même

  9. #9
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    d'accord supposons que j'utilise Sharkwire par exemple et que je "sniffe" des paquets est-ce que je peux les modifier en live là j'ai des doutes.
    Surtout avec le protocole https en principe c'est pas possible.
    Faut étudier le problème
    Non, vous ne pouvez pas les modifier en live*. Mais sur une connexion non sécurisée, vous sniffez une fois, un paquet valide d'envoi de score, vous faites de la reverse ingénierie (pour trouver où est stocker le score), vous le modifier en local et vous le renvoyez. Le serveur naïf valide votre nouveau score.
    Maintenant, pour palier à cela, il va falloir ajouter un jeton de session et bien sûr, faire du HTTPS. Mais le HTTPS (ou autre flux sécurisé), bah faut le faire (heureusement que OpenSSL existe, d'ailleurs, dans tous les crédits de tous les jeux modernes ) et cela ne répond pas à toutes les problématiques, notamment car votre hacker a accès à la machine**.
    Du coup, maintenant, on va devoir réfléchir à d'autres trucs, bien plus compliqué. Bref, je préfère coder mon jeu et laisser ces détails à des pros.


    * : en réalité, vous le pouvez, en ajoutant un programme entre le jeu et l'interface réseau (cela peut se faire avec une DLL, qui remplace les appels systèmes d'envoi de paquet sur le réseau).

    ** : essayez d'ouvrir l'inspecteur de votre navigateur et de voir les requêtes effectuées par GMail lorsque vous vous connectez . C'est sécurisé (HTTPS), mais vous, vous pouvez voir les données passant dans la requête . C'est sécurisé pour un Man In The Middle qui sniffe la ligne, mais pas un hacker qui a infecté votre PC ou le serveur de Google. La sécurité, c'est comprendre le vecteur d'attaque pour se protéger contre celui-ci. Mais dans le cas de GMail, si le hacker a contrôle de votre PC, il a plein pouvoir (keylogger, virus, truc qui récupère vos mots de passe sauvegardés...).
    C'est pour ça, que dans le monde des jeux vidéo, on ne peut absolument pas faire confiance au client.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. réalisations des jeux par windev
    Par Math2012 dans le forum WinDev
    Réponses: 6
    Dernier message: 26/03/2015, 14h49
  2. Réaliser des services bancaires à distance avec CORBA, en Java
    Par savyerm dans le forum Développement Web en Java
    Réponses: 3
    Dernier message: 10/09/2012, 20h02
  3. Jeux vidéo multijoueurs avec flash
    Par jbat64 dans le forum Flash
    Réponses: 7
    Dernier message: 22/04/2010, 18h00
  4. Débutant dans les réalisations des jeux
    Par amine6441 dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 07/04/2007, 18h56
  5. Comment réaliser des modèles de documentations avec XML ?
    Par Dams76 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 29/08/2003, 02h15

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