Je sais qu'il est impossible d'empêcher complètement les utilisateurs de tricher et/ou de fendre une application Web, mais ce trou est si facile à trouver qu'il devrait être branché.Masquer le contenu pour éviter de tricher dans le jeu JavaScript
https://mcthompsonatl.github.io/
Je ne fait pas de code tout cela. On m'a donné ce très basique "trouver tous les 6 objets" (dans ce cas, les clés) devinant le jeu qu'un ancien employé, qui n'était pas un programmeur par métier, a écrit pour une promotion pour un de nos clients. La logique est saine, et il faut un peu de mise en forme, mais en testant en mode développeur, il m'a fallu très peu de temps pour trouver que le jeu peut facilement être gagné simplement en inspectant chaque <div>
de la classe card
. Parce que cela est utilisé pour un concours promotionnel, j'ai essayé de trouver un moyen de masquer ou de changer le code de jeu à l'endroit où inspecter l'une des cartes en mode développeur ne révèle aucun indice.
La seule solution que j'ai pu trouver consistait à changer les éléments de la carte en plusieurs éléments HTML5 Canvas. Les deux problèmes avec cela est 1. Je n'ai aucune expérience de travail avec Canvas et 2. Même si je l'ai fait, cela semble être une tâche extrêmement longue et douloureuse, et je ne suis pas sûr si je vais avoir le temps je ' d besoin d'apprendre juste assez pour remédier au problème. Est-ce quelque chose qui peut être caché avec PHP? Je suis un peu perplexe ici pour trouver une solution raisonnable. Toute aide est appréciée.
Je suggère de faire un appel de procédure à distance chaque fois que l'utilisateur interagit avec une carte, que ce soit avec ajax ou sur websockets. Rien n'empêche les utilisateurs d'inspecter le code côté client; alors gardez ce côté serveur d'information jusqu'à ce que ce soit nécessaire. –
Actuellement votre jeu est similaire à un ticket de loterie à gratter où les valeurs réelles sont prédéterminées mais cachées. Idéalement, vous ferez quelque chose comme @DaveSnyder recommande, un clic génère un appel à un serveur qui vous dit ce qu'il y a derrière la carte, et ensuite vous l'affichez.Cependant, une approche js-only plus basique pourrait être de donner à chaque carré cliqué un pourcentage de chances d'avoir un gagnant derrière lui, qui n'est pas déterminé jusqu'à ce qu'il soit cliqué. Cela a ses propres défauts, car signaler une victoire au serveur est encore facilement usurpable (contournant complètement le jeu). – James
Utilisez-vous jquery? Je travaille sur quelque chose et je veux savoir si vous l'utilisez afin que je puisse l'utiliser dans ma solution. – MJoraid