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

Programmer un classement en ligne

[-ArK-]
[-ArK-]
Niveau 30
25 mai 2012 à 10:40:06

:salut:

Depuis pas mal de temps, je me pose une question uniquement par curiosité. Je veux pas le faire pour l'instant, mais j'aimerais savoir comment ça marche :oui:

C'est un problème qui concerne souvent la création de jeux vidéo mais qui peut se retrouver pour des programmes plus généraux, c'est pour cela que je poste ici et pas dans le forum création de JV, mais j'aurais très bien pu poster là bas. :noel:

En fait, il y a beaucoup de jeux qui utilisent des classements en ligne, par exemple des jeux de course où les meilleurs temps sont stockés dans une base de données, ça permet par exemple au joueur de comparer son meilleur temps par rapport aux autres.

Pour ce faire, on doit donc disposer d'une base de données, ok, dit comme ça ça a pas l'air bien sorcier :noel:

Cependant, il me semble qu'il serait fou de stocker la requête directement dans le code source du programme, puisque celle ci devrait contenir les login et mot de passe de la BDD, qu'on pourrait retrouver facilement en décompilant le programme, mais aussi les requêtes-même qu'on pourrait éditer en modifiant ce programme :(

Donc, pour sécuriser ça, j'imagine que la méthode est de passer par un serveur : on envoie un socket ou quelque chose du genre à ce serveur, qui ensuite s'occupe de faire la requête SQL sur pour stocker ça dans sa base de données dont lui seul a accès, comme ça l'utilisateur n'a aucun moyen de voir les infos cités au dessus.

Mais comment empêcher un utilisateur de trafiquer les données qu'il envoie ?
Il pourrait par exemple modifier directement certaines variables dans la mémoire pour faire un temps de fou à l'aide de programme tiers, et même si on instaure un système de cryptage avec clefs et tout le bordel, ils pourraient même modifier directement le jeu pour aller hyper rapidement, etc.

J'ai l'impression que faire un classement en ligne sécurisé et fiable est totalement impossible, et pourtant beaucoup de jeux proposent ça.

Alors comment ils font pour vérifier que les infos qu'ils reçoivent est cohérente :question: Et sont-ils obligés de passer par un serveur pour faire le pont entre BDD et jeu ? :question:

ça m'intrigue depuis des mois ce truc :-(

Gleuh
Gleuh
Niveau 10
25 mai 2012 à 20:54:18

Salut,

T'es complètement parano :hap:
Dans les petit jeux fait par une personne qu'on peut voir, les gens n'ont pas que ça a faire d'utiliser un programme complexe pour tricher les classements, ça n'a strictement aucun intérêt :hap: :oui:
Par exemple pour CoD, ok, des millions de gens vont croire que t'es un pro, mais là, ça n'a aucun sens.
Au pire tu pourra modifier la BDD, hein, et virer les tricheries. :)

041
041
Niveau 10
25 mai 2012 à 21:47:47

Je trouve que peu importe la taille du projet, c'est important la sécurité.
Après oui faut pas aller dans l'extrême, même si en théorie, il ne faut faire confiance à aucune requete venant de l'utilisateur.
Genre un jeu créé par un mec de jvc sur lequel j'avais viré tout le classement avec une bête faille SQL, ou des mdp FTP enregistrés dans le programme...

Après, selon la nature du jeu, c'est différent à gérer.

godrik
godrik
Niveau 30
25 mai 2012 à 22:21:05

OP a raison, ce n'est pas possible d'avoir une protection parfaite contre les petit malin. Une solution simple est d'encoder la requete avec un algorithme simple qui permet de verifier l'authenticite. Typiquement tu envoies le nom, le score, et un checksum de la chaine "nom+score". Si le petit malin trouve comment le checksum est genere tu es foutu, mais c'est impossible a empecher.

Apres tu peux faire un checksum compliquer qui contient toute la partie ce qui peux servir a verifier la validite du resultat, mmais ce n'est pas parfait non plus.

Pseudo supprimé
Pseudo supprimé 25 mai 2012 à 22:38:04

Suffit de voir les classements de jeux flash ou du game center pour voir que sécuriser ça est un doux rêve. La seule solution est de bannir/calculer les coups côté serveur. A noter qu'Apple ne prennent pas la peine de maintenir leurs classements :D

[-ArK-]
[-ArK-]
Niveau 30
26 mai 2012 à 11:48:21

Ok, merci pour vos réponses. C'est donc plus compliqué que ce qu'on peut croire dans un premier temps :-(

Gleuh :d) faut toujours être parano en informatique :peur: et comme je l'ai dit c'est même pas un truc que je comptais faire en projet, je me posais juste cette question par curiosité :noel: à chaques fois que j'utilise un programme j'me demande 'tiens, comment ils ont pu faire ça :doute: '

Bunyan
Bunyan
Niveau 17
26 mai 2012 à 12:10:00

Attention, la paranoïa excessive peut mener à ça : http://www.developpez.net/forums/d1011093/systemes/windows/securite/cherche-bien-securiser-windows/

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