Judepom : comme l’a souligné je sais plus qui, le problème n’est pas tant qu’un client puisse exécuter du code frauduleux sur son navigateur, mais qu’un client puisse exécuter du code frauduleux chez un autre client. Si tu fais des eval tu peux éxécuter du code qui serait dans une variable, dont le contenu peut potentiellement venir du serveur, ou d’une lib JS tierce, ou d’autres éléments sur la page qui peuvent venir d’une régie de pub etc ; et même si ça vient de ton serveur, lui-même potentiellement y inclut des données qui peuvent venir de l’extérieur (autre client, autre serveur, un fichier (qui y a accès ?), que sais-je). Mettre un eval dans un code JS c’est un peu ouvrir une backdoor chez le client et faire reposer sa sécurité sur des éléments extérieurs à ce code, c’est pas ouf. Difficile dans ces conditions d’avoir une idée de ce qui peut se passer chez le client. Mais c’est pas le seul problème d’eval : maintenance, debugging, vitesse d’exécution, etc. C’est jamais une bonne idée d’utiliser eval, et on peut toujours faire sans. Peu importe le langage.
stephcache : Tu peux déclarer un tableau vide : var xs = []; et ensuite remplir uniquement les cases que tu veux et y accéder par leur numéro. Ca revient exactement au même que faire plusieurs variables avec le numéro dans le nom, sauf que t’as pas besoin de faire un truc crade à chaque fois que tu veux en récupérer un en particulier.