11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'apprends l'AJAX pour créer une application web et sur bien des forums, on dit que ce langage autorise des failles et présente des risques.
J'ai opté pour l'AJAX pour que mon application soit le plus confortable possible pour les utilisateurs mais je n'ai pas envie de prendre des risques supplémentaires.

Faut-il mieux revenir au PHP, apparemment plus sûr?
L'ajax, comme le javascript comporte le gros défaut de pouvoir être modifié par l'utilisateur qui peut donc transmettre relativement n'importe quoi comme information.

Il faut donc penser à vérifier la moindre information envoyé par l'ajax au php plutôt 2 fois qu'une ^^
Effectivement,

On évoque aussi le fait qu'AJAX ne fonctionnera pas si javascript est désactivé, mais c'est le cas de très peu d'utilisateurs non?
Salut,
jmlapam a écrit :
On évoque aussi le fait qu'AJAX ne fonctionnera pas si javascript est désactivé, mais c'est le cas de très peu d'utilisateurs non?

Si tu as affaire à un environnement maîtrisé (par exemple, un Intranet consulté exclusivement depuis des postes de travail dont on a la certitude absolue que JavaScript est obligatoirement activé et ne peut pas être désactivé), très bien ; sinon, il faudra songer à une alternative à Ajax (tout comme à tout ce qui requiert JavaScript) pour des raisons d'accessibilité.
@Victor: Très juste mais je vois mal comment faire sans javascript, l'application sera forcément "dégradée", je cherche à faire une RIA alors j'ai bien pensé à flash, pour lequel j'ai beaucoup plus de facilités et de connaissances, mais ce n'est pas un modèle d'accessibilité !

Pour mon application il faut que l'utilisateur possède le Flash Player en plus du Javascript d'activé, donc on retombe dans les mêmes problématiques.

Le problème est que je n'étais pas censé la développer mais juste la concevoir. Smiley sweatdrop
Bonjour,

Il n'y a pas de mal à avoir une solution dégradée.

Pour info, les statistiques indiquent qu'il y a moins d'utilisateurs naviguant sans JS que d'utilisateurs d'IE6.
Ok, effectivement j'aurais du poster dans ce forum.

Sinon oui, mais étant donné que je ne suis pas développeur, je vais forcément mettre bien plus de temps à mettre en place cette solution dégradée or le temps, on court toujours après en tant que chef de projet (enfin là je gère tout de A à Z). Smiley langue
jmlapam a écrit :
Sinon oui, mais étant donné que je ne suis pas développeur, je vais forcément mettre bien plus de temps à mettre en place cette solution dégradée or le temps, on court toujours après en tant que chef de projet (enfin là je gère tout de A à Z). Smiley langue
C'est pour cela qu'on prévois toujours du temps pour ça dans un vrai projet.

Il y a moyen de faire sans, c'est ton projet... C'est lui qui perdra de la valeur.
Bonjour,

Si tu penses que «AJAX» est un langage, alors ça me semble très mal barré pour que tu développes cette application. Pour rappel, ce qu'on appelle «Ajax» en développement web c'est une technique qui consiste à:
- Exploiter une API des navigateurs qui permet d'effectuer des requêtes HTTP asynchrones (ne provoquant pas un rechargement de la page). L'API en question se nomme XMLHttpRequest.
- Prévoir côté serveur des scripts qui vont pouvoir retourner des informations suite à ces requêtes, sous différentes formes (fragment de document HTML, XML, ou JSON notamment), ou bien encore gérer des requêtes POST et retourner soit un contenu, soit un message d'état.
- Utiliser JavaScript pour observer des évènements utilisateur dans le document (clic sur certains éléments ou liens), déclencher des requêtes XHR, et exploiter les réponses pour modifier le DOM de la page (afficher un contenu, un message de succès ou d'erreur, etc.).

Le modèle de sécurité d'Ajax c'est le modèle de sécurité d'HTTP (et HTTPS), ni plus ni moins.
Je vois pas du tout en quoi ce serait mal barré...
Merci de la correction (je comprends qu'elle soit faite) mais peu m'importe que ce soit un langage ou une technique, cela ne change rien à l'affaire, je sais que j'y mets du javascript, du CSS, du XML donc j'utilise un ensemble de langages.

Bon nombre de virus utilisent le javascript donc pas mal d'entreprises interdisent son exécution, elles ne font pas partie de la cible principale de toute façon, mais tout de même.

Mon souci réside là-dedans mais c'est une affaire de précaution, je suis obligé d'évaluer le risque maintenant si tu me dis qu'il n'est pas plus élevé qu'ailleurs, je te crois volontiers mais alors pourquoi AJAX est pointé du doigt comme cela, c'est quoi, la doxa du web?



EDIT:
Laurie-Anne a écrit :
C'est pour cela qu'on prévois toujours du temps pour ça dans un vrai projet.

Cette remarque est assez déroutante.
C'est un vrai projet, je vois pas le rapport du tout, je m'adapte c'est tout. Le développeur a lâché, c'est pas vraiment dans les plans. Je n'étais pas chef de projet au départ donc ce n'était pas à moi d'évaluer cela.


@Victor: très bien, je jette un oeil, merci pour le lien.
Modifié par jmlapam (10 Oct 2011 - 15:55)
Modérateur
Bonjour,

jmlapam a écrit :

Bon nombre de virus utilisent le javascript donc pas mal d'entreprises interdisent son exécution, elles ne font pas partie de la cible principale de toute façon, mais tout de même.


Il y a aussi des gens qui utilisent des extensions qui désactivent Javascript par défaut, et permet de l'autoriser uniquement sur certains sites de confiance. Je peux les comprendre. Je ne donnerai aucun nom, mais il y a un certain site très connu et de confiance qui à deux reprises affichait des publicités qui transmettaient un virus. J'ai été infecté une fois et la seconde mon antivirus l'a bloqué. Dorénavant, chaque fois que je m'y rend, je désactive systématiquement mon Javascript.

jmlapam a écrit :

Mon souci réside là-dedans mais c'est une affaire de précaution, je suis obligé d'évaluer le risque maintenant si tu me dis qu'il n'est pas plus élevé qu'ailleurs, je te crois volontiers mais alors pourquoi AJAX est pointé du doigt comme cela, c'est quoi, la doxa du web?


Le risque réside surtout dans l'expérience et les connaissances du développeur. Si tu maîtrises la sécurité d'une application Web, il n'y a pas plus de danger d'utiliser AJAX que de simples formulaires HTML. Peut-être qu'AJAX est pointé du doigt parce que certaines personnes se lancent dans l'AJAX (ou le développement web tout court) sans connaître toutes les notions reliées à la sécurité d'une application Web. Plusieurs personnes ne sont même pas conscientes que tout ce qui provient de l'utilisateur peut être modifié par ce dernier et que le Javascript peut être édité à la volée.

Pour ce qui est de décider si tu dois offrir une dégradation de ton application si le Javascript est désactivé, c'est difficile d'y répondre sans connaître de quoi il s'agit exactement. En règle générale, c'est mieux de proposer une dégradation, mais comme dans tout, il y a des exceptions où c'est plus difficile, voir impossible selon la complexité de l'interface et de ses fonctionnalités. Par exemple, si tu réalises un éditeur d'images en ligne à la Photoshop, je verrais très mal comment faire une dégradation élégante et fonctionnelle. Smiley cligne
Non, je crois que je vais faire en PHP/Mysql uniquement, j'aime pas bricoler quand c'est pour un projet pro;
En réalité, le javascript devrait pouvoir être zappé, ce sera moins esthétique mais au moins cela marchera en limitant les risques.
Je vais rédiger un cahier des charges en fonction.

Merci de toutes vos lumières. Smiley cligne
Modifié par jmlapam (11 Oct 2011 - 00:58)
Une RIA sans Javascript, ça doit pas être super riche !
Penser accessibilité quand on fait une Web Application, c'est se limiter. Autant tenter d'imposer un minimum des choses requises, comme Javascript, ou si tu le fais en Flash, en utilisant Flex qui est le vraiment fait pour ça, tu peux demander l'installation du Flash Player, déjà installé sur 99% des ordinateurs je crois.

Et comme dit, Ajax fait de la requête HTTP, comme tout formulaire ou page non-Ajax, il n'introduit aucune nouvelle faille. Tu peux modifier les paramètres $_GET d'une page normale ou même les $_POST sans que ce soit Ajax.

En tout cas, je suis curieux de voir une "RIA" sans Javascript... Un site Web quoi ? et encore ...
Oui oui sans aucun doute là-dessus.
Bah à la base devait être une RIA mais maintenant sera une MCIA:

"middle-class internet application" Smiley murmure

Au max ce sera flash parce que là j'ai des notions mais j'ai le couteau sous la gorge, on aime les défis ou on les aime pas... Smiley scared Smiley mur
Modifié par jmlapam (12 Oct 2011 - 02:04)