Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/12/2011, 02h13   #1
Nouveau Membre du Club
 
Avatar de arkham55
 
Lau Asylum
Inscription : mars 2010
Messages : 169
Détails du profil
Informations personnelles :
Nom : Lau Asylum

Informations forums :
Inscription : mars 2010
Messages : 169
Points : 36
Points : 36
Par défaut Sécurité JS/JQuery renvoi de données

Bonjour à tous/toutes,

Voilà, j'aimerai parler un peu des possibilités du JQuery.

Mon raisonnement est le suivant :
imaginons un site de jeux développés en JS, bon. Le joueur débute avec ses statistiques, ses points etc. Qu'est-ce qui empêche ce joueur d'utiliser un plugin tel que FireBug pour modifier le code JS et, par exemple, gagner la partie, s'ajouter des points etc? Bref, modifier des champs afin de les renvoyer au serveur, qui va enregistrer les points piratés..

Voilà, je me posais la question, est-ce une technologie adaptée pour l'utiliser en ce sens? L'ActionScript est-il plus adapté à ce niveau, échange de données entre le client et le serveur?

Merci de participer à cette discussion.
__________________
C'est à ... que vous ... le plus de mystères.
arkham55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 08h36   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 069
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 069
Points : 45 202
Points : 45 202
personne n'a jamais dit que javascript était sur ...
Bien au contraire !!!
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/12/2011, 23h02   #3
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonsoir

Les outils du développeur permettent de modifier uniquement la version locale.

Avant d'envoyer des informations au serveur, il doit toujours y avoir des contrôles de vraisemblance coté JS, mais les contrôles sérieux doivent se trouver côté serveur. Il faut toujours prendre ce qui arrive du "client" avec beaucoup de prudence.

Un jeu se déroule par étape et pour franchir chaque étape certaines conditions doivent être remplies et chaque étape nécessite une durée minimale de jeu. Il est donc assez facile de contrôler la vraisemblance à chaque étape, tant sur le client que sur le serveur.
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 13h16   #4
Nouveau Membre du Club
 
Avatar de arkham55
 
Lau Asylum
Inscription : mars 2010
Messages : 169
Détails du profil
Informations personnelles :
Nom : Lau Asylum

Informations forums :
Inscription : mars 2010
Messages : 169
Points : 36
Points : 36
Merci pour vos réponses.

Et entre cette solution qui est de vérifier les conditions du joueur, qu'ils ne dépassent pas les possibilités du jeu, et les possibilités avec l'AS/Flash, est-ce que le Flash est plus sûr de ce côté? Qu'en pensez-vous?
__________________
C'est à ... que vous ... le plus de mystères.
arkham55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 13h35   #5
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 069
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 069
Points : 45 202
Points : 45 202
AS est également coté client ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 14h02   #6
Nouveau Membre du Club
 
Avatar de Squalthor
 
Homme
Autodidacte
Inscription : juillet 2006
Messages : 140
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Autodidacte

Informations forums :
Inscription : juillet 2006
Messages : 140
Points : 37
Points : 37
L'avantage de l'AS c'est avant tout de pouvoir gérer "facilement" clavier et animations non ?

Je projete de faire un portail de jeux (site basé entèrement sur ajax) et n'ayant pas de connaissance en AS je compte aussi passer par le js pour offrir aux joueurs une certaine ergonomie (gestion des touches, sourie, animations à la pelle).

Ma question va sûrement paraitre stupide mais... un joueur peut modifier des valeurs en mémoire ?
Squalthor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 14h13   #7
Nouveau Membre du Club
 
Avatar de arkham55
 
Lau Asylum
Inscription : mars 2010
Messages : 169
Détails du profil
Informations personnelles :
Nom : Lau Asylum

Informations forums :
Inscription : mars 2010
Messages : 169
Points : 36
Points : 36
D'accord, ce qui implique que l'application pourrait être modifiée par le client et renvoyer au serveur des données compromises.

Hmmm intéressant. Ce que je vais faire; tester les deux possibilités, voir laquelle des deux me convient le mieux niveau communication avec le serveur et, bien sûr, l'implémentation de la sécurité pour chacune. Je choisirai ensuite.

Si des membres ont des ressources qui pourraient être susceptibles d'améliorer la qualité de développement sur ces supports, je suis preneur bien entendu.
__________________
C'est à ... que vous ... le plus de mystères.
arkham55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 14h32   #8
Nouveau Membre du Club
 
Avatar de arkham55
 
Lau Asylum
Inscription : mars 2010
Messages : 169
Détails du profil
Informations personnelles :
Nom : Lau Asylum

Informations forums :
Inscription : mars 2010
Messages : 169
Points : 36
Points : 36
Squalthor,

si tu browse via Firefox, tu peux essayer d'installer le plugin "Firebug" qui permet de parcourir et de modifier les éléments d'une page, le code JS, CSS et même HTML. Mais comme l'a dit daniel, c'est une copie locale qui est modifiée, en aucun cas un autre client ne pourra obtenir le résultat, que tu auras créé, dans son navigateur.

Donc, le problème que je voulais évoquer se trouve bien au niveau du serveur recevant les paramètres du client. Il doit vérifier de manière efficace que le jeu s'est déroulé correctement, et qu'il a abouti à une fin d'exécution prévue, avant de mettre à jour les données de l'utilisateur, comme le score.

Je prends un exemple, imagines un jeu de puzzle, le but est de modifier les emplacements des parties pour qu'elles reforment l'image de base.
Imagines qu'une variables JS contienne un indice qui vaut 0 quand le puzzle n'est pas terminé et 1 quand il est complet. Imagines que cet index soit envoyé au serveur à 1 dés le début de partie, le serveur reçoit l'index qui lui informe que le joueur à réussi et il lui augmente ses points.

Comme le suggérait Daniel, un scheduler pourrait être le bienvenu pour vérifier que le joueur n'a pas triché.

Imaginons un autre exemple, un jeu qui décompte des points gagnés suivant ... hmmm ... un nombre de blocs détruits par exemple! Si ce nombre de points est stocké dans un variable JS, le joueur peut modifier ce nombre et le renvoyer au serveur. Le serveur reçoit le nombre (9999999) et hop le joueur est le premier du classement!

Fin voilà, c'est l'intuition qui m'a poussé à venir poster dans le forum. C'est juste que beaucoup de jeux, développés en Flash, m'ont l'air plus "sécurisé" dans le sens où les interactions ont l'air "encadrées" par le langage.
__________________
C'est à ... que vous ... le plus de mystères.
arkham55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 14h52   #9
Nouveau Membre du Club
 
Avatar de Squalthor
 
Homme
Autodidacte
Inscription : juillet 2006
Messages : 140
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Autodidacte

Informations forums :
Inscription : juillet 2006
Messages : 140
Points : 37
Points : 37
Bonjour Arkham55.

Cette discution m'intérresse d'autant plus que je suis en train de coder un site entièrement en Ajax.
Donc je dois être bien attentif à la sécurité du site.

J'utilise également Firebug, mais après brièvement cherché je n'ai rien vu qui me permettais de modifier le code javascript... j'ai mal regardé ?


Je suis un amateur, donc il est sûr que je ne cerne pas tout ce que ça peut englober... Par contre effectivement je pars du principe que la sécurité de base se trouve dans les contrôles php.

Enfin, mon projet n'est et ne sera probablement jamais terminé...
Mais c'est très intérressant dans le principe !
Squalthor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 14h59   #10
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 069
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 069
Points : 45 202
Points : 45 202
Citation:
j'ai mal regardé ?
oui
http://eric-pommereau.developpez.com...l-web/firebug/
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 15h14   #11
Nouveau Membre du Club
 
Avatar de Squalthor
 
Homme
Autodidacte
Inscription : juillet 2006
Messages : 140
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Autodidacte

Informations forums :
Inscription : juillet 2006
Messages : 140
Points : 37
Points : 37
Très mal regardé même...
Bon effectivement, traiter des variables sur le client est vraiment dangereux... Pour ma part j'avais anticipé ceci, ouf !

Donc je m'auto-répond, quand même: on peut modifier les variables en mémoire avec Firebug...

Pour un jeu en js il faut donc rester sur l'action js avec vérification php.
Squalthor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2011, 19h35   #12
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonsoir

À toutes fins utiles, je vous rappelle l'existence des forums dédiés aux Jeux. Voir http://www.developpez.net/forums/f66...nt-2d-3d-jeux/.
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 16h50   #13
Nouveau Membre du Club
 
Avatar de arkham55
 
Lau Asylum
Inscription : mars 2010
Messages : 169
Détails du profil
Informations personnelles :
Nom : Lau Asylum

Informations forums :
Inscription : mars 2010
Messages : 169
Points : 36
Points : 36
Oh super, j'avais pas connaissance de cette partie des forums! Merci Daniel ^^

Mais pour rester dans le JQuery, je n'ai que quelques notions d'ajax et je me renseigne sur les bonnes pratiques.
L'objet ajax permet de faire des XMLhttpRequest, l'intuition, comme je l'ai comrpise, est d'envoyer des messages/demandes/fichiers xml au serveur, d'attendre sa réponse (le site n'est pas bloqué durant ce laps de temps, libre choix au développeur je suppose) et de traiter sa réponse dans le navigateur client, dans le code JS, et d'afficher le résultat (s'il y en a) afin de ne pas devoir charger toute la page.

Cela permettrait, à l'aide d'un bouton par exemple, de demander au serveur d'effectuer une action dans la BD, sans pour autant charger la page, mais une petite partie qui affichera un résultat suivant la réponse du serveur.

Les fichiers XML servent à l'envoi d'informations très rapidement (cela peut même être de simples fichiers textes à ce que j'ai lu) entre client et serveur.

On peut donc imaginer que le client envoi une demande au serveur, qui la reçoit la traite et la renvoie, pendant ce laps de temps, la page affiche au client quelque chose comme une petite image de chargement.

De manière asynchrone, pour un site, c'est très avantageux =)

Oula brainstorming les amis! ^^
__________________
C'est à ... que vous ... le plus de mystères.
arkham55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 21h10   #14
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonsoir

Avant toute chose, si vous voulez vraiment utiliser jQuery, je vous conseille la lecture de la FAQ jQuery. Vous y trouverez certainement quelques réponses à vos questions. Vu votre intérêt pour AJAX, je vous conseille de commencer par les chapitres "introduction" et "requête ajax".

Rendre une action synchrone, AJAX ou autre, c'est bloquer la page web et mécontenter l'utilisateur dans 99 % des cas.
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 21h48   #15
Nouveau Membre du Club
 
Avatar de arkham55
 
Lau Asylum
Inscription : mars 2010
Messages : 169
Détails du profil
Informations personnelles :
Nom : Lau Asylum

Informations forums :
Inscription : mars 2010
Messages : 169
Points : 36
Points : 36
Tu n’exagères pas un peu? Dans le cas d'un jeu, il y a toujours des chargements, c'est normal quand même que les ressources mettent du temps à être téléchargées. Merci encore.
__________________
C'est à ... que vous ... le plus de mystères.
arkham55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 22h09   #16
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
On peut toujours demander à l'utilisateur d'attendre avec un GIF animé, mais par expérience il ne faut pas plus de 5 secondes avant que 50 % aille voir ailleurs. Si l'utilisateur voit que le page se construit devant ses yeux, s'il a quelque chose à lire ou quelque chose à faire, alors il prend patience une quinzaine de secondes.
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2011, 23h01   #17
Nouveau Membre du Club
 
Avatar de arkham55
 
Lau Asylum
Inscription : mars 2010
Messages : 169
Détails du profil
Informations personnelles :
Nom : Lau Asylum

Informations forums :
Inscription : mars 2010
Messages : 169
Points : 36
Points : 36
Oui tes statistiques sont bonnes, tu as raison. Mais c'est sûr qu'il ne pourra pas attendre 5 minutes à ne rien faire, c'est vrai..
Merci encore pour les ressources partagées.
__________________
C'est à ... que vous ... le plus de mystères.
arkham55 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h42.


 
 
 
 
Partenaires

Hébergement Web