CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[as3-php] Crypter données requête POST

Pseudo supprimé
Pseudo supprimé 04 septembre 2012 à 01:57:26

Amis du jour, bonsoir. :noel:

Etant développeur amateur,
J'ai récemment créé un jeu qui, en fin de partie,
Permet l'envoie du score + username via une méthode URLRequest - POST ( as3 )

Malheureusement, j'ai tapé "Cheater jeu flash" dans google,
Et j'ai été choqué de voir à quel point il était facile d'intercepter une requête Post. :(

Je vous demande donc s'il existe une méthode pour sécuriser l'envoi des données,
Et empêcher l'interception et la modification de la requête Post.

Faut-il crypter les données, générer une sorte de captcha ?
Si vous pouviez m'éclairer, je vous en serez reconnaissant.

Merci de votre lecture. :)

godrik
godrik
Niveau 30
04 septembre 2012 à 07:13:57

Le plus simple est d'inserer un code de controlle dans les donneess que tu envoies. Ou encore de les signer cryptographiquemnet. Ca ne fournira pas une super protection parceque la cle a besoin d'etre dans le client, mais ca empechera les triches les plus simples.

Neofungamer
Neofungamer
Niveau 22
04 septembre 2012 à 07:40:55

Je pense que c'est côté serveur que tu devrais sécuriser. Tu pourras de cette manière vérifier là cohérence des données et repérer la triche. Mais si un joueur sur mille triche, je pense que ce n'est pas trop grave. Tu peux combiner aussi ça avec ce que propose godrik.

[-ArK-]
[-ArK-]
Niveau 29
04 septembre 2012 à 11:11:22

J'avais déjà fait un topic du genre, on m'avait répondu quelques trucs intéressant https://www.jeuxvideo.com/forums/1-47-64936-1-0-1-0-programmer-un-classement-en-ligne.htm

J'avais pensé à autre chose pour être sûr de l'authenticité du score, c'est d'envoyer carrément le replay en même temps que le score. Après c'est chiant et pas toujours forcément réalisable selon le jeu je pense :noel:

Mais sinon oui, même si quelqu'un trouve comment tu as crypté les données, mettre un petit contrôle rebutera déjà les tricheurs du dimanche et du coup je pense que c'est important :hap:

Pseudo supprimé
Pseudo supprimé 04 septembre 2012 à 12:26:53

J'ai lu le topic et je vais donc me renseigner sur la mise en place d'un "checksum",
C'est ce qui me paraît le plus simple à mettre en place.

[Edit] ( Oui j'fais des édit avant de poster )
Je suis allé voir sur internet en quoi ça consiste,
C'est ultra simple à comprendre non ?
Imaginons que la personne fait 1000:
score=1000&gamertag=Serial&captcha=1000Serial

Il change en:
score=999999&gamertag=Serial&captcha=999999Serial

Non ? :question:
J'avais pensé à faire deux requêtes php en fait.

Une première qui génére un captha aléatoire côté serveur et qui le renvoie à Flash,
Et la seconde qui envoie le score+gamertag avec le captcha reçu .5 secondes plus tôt.

Qu'en pensez-vous ?

Pseudo supprimé
Pseudo supprimé 04 septembre 2012 à 12:45:30

Excusez-moi si je passe à côté de quelque chose de gros ou de vraiment simple,
Mon objectif n'est absolument pas de vous faire perdre votre temps mais d'avoir un résultat assez vite, tout en apprenant.

Les seuls tutoriels que je trouve parlent de hash, MD5, SWFencrypt,
C'est la seule manière de sécuriser proprement un échange de donnée ?

Fire_Storm
Fire_Storm
Niveau 10
04 septembre 2012 à 13:37:31

Je ne connais pas du tout l'actionscript, mais pour moi une requete post serait à éviter (car on peut justement la falsifier comme on veut).

Donc soit tu te fais un algorithme qui se base sur le score (addition d'une valeur, puis intégration d'un grain de sel, tu hashe le tout pour finir, c'est peut être pas le must mais bon).

Ou bien tu passes par exemple par des variables de sessions (qui sont stockées sur le serveur logiquement donc la personne ne peut pas je pense la modifier manuellement), bref sans devoir passer par l'intermédiaire du client. Après je dis peut être des conneries (si c'est le cas qu'on me corrige).

Pseudo supprimé
Pseudo supprimé 04 septembre 2012 à 13:42:36

Tu dis pas de conneries, mais Flash est une application client.

fpsgammer
fpsgammer
Niveau 10
04 septembre 2012 à 15:58:33

Pour moi le meilleur moyen de résoudre ton problème est de recourir à la Cryptographie asymétrique ( http://fr.wikipedia.org/wwiki/Cryptographie_asymétrique )

Et plus particulièrement t'intéresser à RSA qui est l'algorithme le plus commun ( http://fr.wikipedia.org/wiki/Rivest_Shamir_Adleman ) et dont le brevet s'est achevé en 2000 :fete:

Par contre je ne connais pas du tout as3 donc je ne saurais te dire s'il existe des lib qui implémente déjà RSA :-(

godrik
godrik
Niveau 30
04 septembre 2012 à 16:27:35

FPSGammer, ca ne va pas vraiment regler le probleme. Il faut que la cle d'encryption soit dans le client pour pouvoir chifferer le message a partir de la il n'y a aucune difference entre RSA et n'importe quelle fonction non evidente.

Perso, j'enverri le score+nom du joueur, avec un un hash quelconque (MD5,SHA1), ou une combinaison de hash pour rendre le message non trivial.

Neofungamer
Neofungamer
Niveau 22
04 septembre 2012 à 16:34:24

+1 pour godrik c'est ce qui est le plus simple à faire.
Et si quelqu'un s'amuse à décompiler ton flash pour trouver la méthode alors qu'il la trouve et voilà.

Je ne pense pas qu'il faille se prendre la tête si 1 joueur triche sur 10 000. C'est pas si important.
Sinon tu peux transférer une screenshot en plus pour qu'un humain puisse visualiser si tu as un doute.

Pseudo supprimé
Pseudo supprimé 05 septembre 2012 à 15:37:55

J'ai téléchargé la version d'essai de SWF Encrypt 7,
Et je suis différentes discussions sur des forums à propos des hash également.

Avez-vous des tutoriels qui traitent ce sujet ?

Pseudo supprimé
Pseudo supprimé 05 septembre 2012 à 15:41:43

"Sinon tu peux transférer une screenshot en plus pour qu'un humain puisse visualiser si tu as un doute. "
Tu veux dire que je devrais vérifier chaque screen avant de valider et d'actualiser les highscores ?

Non non, je mise sur le dynamisme,
Et mon principal objectif est de décourager les cheateurs du dimanche.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment