JeuWeb - Crée ton jeu par navigateur
"desactiver" un lien lorsque l'on a cliqué - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : "desactiver" un lien lorsque l'on a cliqué (/showthread.php?tid=870)

Pages : 1 2 3


"desactiver" un lien lorsque l'on a cliqué - Kassak - 19-04-2007

Bonjour!

Dans mon jeu, on peut cliquer 50 fois dessuite sur le lien attaquer, sans attendre que la page se recharge, donc on peut utiliser 5000pa en 5 minutes, en sachant qu'un coup en vaut trois^^

Pas super super, car il suffirait de cliquer comme un bourrin sur le lien pour xp..

Est ce que l'on peut bloquer un lien, le temps du rechargement de la page?
C'est a dire que des qu'on a cliqué, le lien n'est plus actif, et des le rechargement, on peut recliquer?

Ou savez vous comment remedier a cela?


RE: "desactiver" un lien lorsque l'on a cliqué - Dradge - 19-04-2007

La solution vient de javascript, mais le javascript est désactivable donc, celui qui voudra cliquer 50 fois de suite, pourra toujours le faire.


RE: "desactiver" un lien lorsque l'on a cliqué - denisc - 19-04-2007

Pour éviter la triche, il n'y a qu'un seul remède... Rien chez le client! Lorsque le joueur clique sur le lien, tu envoie vers ton serveur ce clic... Et bien ton serveur vérifie que le joueur a encore le droit de cliquer! si oui, on fait les actions, sinon, on affiche un message le lui indiquant.


RE: "desactiver" un lien lorsque l'on a cliqué - Roworll - 20-04-2007

De toute manière, si chaque clic envoie une attaque et que cette attaque dépense des PA, au bout d'un moment, le type n'en auras plus...
Donc il peut bourriner tant qu'il veut, si le code serveur est correct, il n'y a pas de risque.


RE: "desactiver" un lien lorsque l'on a cliqué - Maks - 20-04-2007

Dradge a écrit :La solution vient de javascript, mais le javascript est désactivable donc, celui qui voudra cliquer 50 fois de suite, pourra toujours le faire.

Je pense à un truc, si javascript est activé, on peut faire un système dans lequel le bouton d'attaque est mis sur 'disabled' une fois cliqué et, de plus, le bouton de clic serait de type button et avec une fonction genre onclick="button_disabled();". De ce fait, celui ayant désactivé javascript, ne pourrait pas valider son attaque étant donné que la fonction qui l'active est une fonction javascript, arrêtez moi si je me trompe ?


RE: "desactiver" un lien lorsque l'on a cliqué - Roworll - 20-04-2007

Ce n'est pas une solution correcte sur le problème.
Ton bouton mène certainement vers un lien.
Ce lien peut être copié/collé dans un navigateur -> F5 en cascade -> Pluie de mandales.
On peut même réaliser un script qui va exploiter ce lien de façon encore plus efficace...
Le seul et unique moyen d'étre efficace est de travailler sur ton serveur... Il n'y a pas de miracle.

Ces méthodes de "triche" sont à appréhender dès le départ. Sinon, tu risques de te retrouver avec des failles exploitables, ce qui mènera à des déséquilibres, des mécontents, etc.

Donc pour résumer :
- Inutile de blinder la partie client, elle n'est pas fiable.
- Tout vérifier grâce au code sur le serveur à chaque fois.


RE: "desactiver" un lien lorsque l'on a cliqué - Maks - 20-04-2007

Le bouton ne mène pas forcément vers un lien si c'est un envoi POST. Je comprends pas ce que tu veux dire.


RE: "desactiver" un lien lorsque l'on a cliqué - Roworll - 20-04-2007

Les posts ne sont pas plus sécurisés que les gets.
Les deux sont "simulables" pour un utilisateur averti.

Pour aider un pote à détecter les failles, j'ai déjà simulé des "posts" sur son site web à partir de pages hébergées en local. c'est très facile.

Ce n'est pas en essayant de brider le client (le navigateur et la couche JS/Ajax qui va avec) que tu réussiras à stopper totalement toute tentative de clic à la chaine. C'est tout simplement impossible.

Le seul moyen est de gèrer les limitations sur le serveur ET de vérifier à chaque fois toutes les données entrantes.
- Vérifier que les paramètres devant contenir des entier soient bien des entiers
- Formatter/vérifier les chaines de caractères pour éviter les problèmes
- Vérifier que l'action peut bien être effectuée par le joueur à chaque fois

JA, Ajax etc c'est très bien pour faire de l'affichage et du dynamiqe, pas pour gérer les problèmes de sécurité.


RE: "desactiver" un lien lorsque l'on a cliqué - Maks - 20-04-2007

C'est vrai que l'on peut changer GET/POST (suffit de voir la barre webdevelopper sur Firefox... hum) et qu'un code exécuté côté serveur est le mieux pour la sécurité mais je pense qu'il y a moyen de déjà limiter les problèmes de ce genre avec Javascript même si c'est vrai que il faut toujours vérifié après car JS est loin d'être infaillible mais le PHP non plus d'ailleurs (cf. upload...).


RE: "desactiver" un lien lorsque l'on a cliqué - Kassak - 20-04-2007

Je ne pige pas trop le fait de mettre sur mon serveur et non sur mon client, apparement c'est la solution miracle, mais je ne vois pas du tout ce que vous voulez dire!

Sinon c'est sur que ce n'est pas dramatique, si on peut cliquer autant de fois que l'on veut, surtout avec les retours des monstres, il faudra quand meme verifier de temps en temps, mais bon je trouve pas ca top moi