Retourner � la page d'accueil de TJSRetourner � la page d'accueil de TJS

Les limites de JavaScript

Cette page est destinée à définir précisément les possibilités et les limites du language JavaScript sur le navigateur. De nombreux webmasters pensent que JavaScript permet toutes les fantaisies et répond à tous les besoins. C'est loin d'être le cas.
Si vous confondez Java et JavaScript, je vous invite à lire cette page de comparaison.
Nous allons commencer par voir ce qu'il est possible de faire avec JavaScript. Nous verrons ensuite comment la sécurité implique des limites au langage. En fin nous aborderons des alternatives avec d'autres langages pour internet.

Ce que permet JavaScript

Le language JavaScript est parfaitement adapté pour des traitements sur le poste du navigateur. Voici quelques exemples de cas où JavaScript est efficace (voire irremplaçable) :
  • Vérification de saisie dans des formulaires (Adresse, email)
  • Calculs simples suite à des saisies de formulaire (Tarifs, calculatrice)
  • Moteur de recherche (base de recherche définie par le webmaster)
  • Gestion des dates et des heures (Date du jour, Date de mise à jour, Calendriers)
  • Gestion des cookies (Sauvegarde d'information : nombre de visites, caddie virtuel)
  • Gestion de la navigation (Menus dynamique, popup)
  • Animations graphiques (Dynamic HTML, MouseOver, bannières rotatives, jeux)
  • Création d'application web avec les appels Ajax vers le serveur
  • Création de jeux
La liste n'est pas terminée. L'imagination du développeur peut repousser les limites du JavaScript, sans pour autant réaliser l'impossible. Voyons maintenant les raisons des limites techniques qu'imposent ce langage.

JavaScript et la sécurité

JavaScript a été conçu pour limiter (presque) complètement les risques pour le visiteur. En ce sens, on peut dire que exécuter un JavaScript sur son navigateur ne comporte aucun risque pour les données et le matériel. JavaScript ne permet pas d'écrire ou de lire un fichier sur le disque dur du visiteur ou sur le serveur. Ainsi, vous ne risquez pas de voir des données confidentielles récupérées à votre insu. De même, il n'est pas possible de lister les logiciels copiés et non enregistrés. Impossible aussi de détruire des fichiers indispensables ou d'introduire un virus sur le poste d'un visiteur.
JavaScript permet quand même d'écrire et de lire le disque dur dans la zone réservée aux cookies. C'est la seule interaction que JavaScript peut avoir avec votre disque dur.

Certains me diront que JavaScript possède des fonctions pour lire des fichiers texte. En fait, JavaScript permet d'intégrer des applets Java ou ActiveX qui elles sont capables d'agir sur le disque dur. Il ne s'agit pourtant pas de JavaScript pur : si vous désactivez Java et ActiveX, rien ne se passera.

JavaScript seul ne peut pas non plus récupérer l'adresse IP d'un visiteur. Il est indispensable également de passer par des appels à Java ou à ActiveX, ou plus simplement par un appel Ajax sur le serveur web.

J'ai dit que JavaScript est presque sans risque. Il est possible de coder un JavaScript qui ouvre des popups jusqu'à épuiser complètement les ressources système. Dans ce cas, la seule solution est de rebooter votre ordinateur. On peut aussi imaginer un JavaScript qui tourne en tâche de fond d'une page web, occupant ainsi des ressources et réduisant les performances de votre poste.
Mais les navigateurs sont maintenant bien protégés contre ce genre d'attaque sommaire.

Les performances de JavaScript en terme de sécurité pour les visiteurs font que JavaScript est accepté par (presque) tous. Le prix de cette sécurité et de cette quasi universalité se traduit par des limites techniques que nous allons détailler tout de suite.

Les limites de JavaScript

La principale limite de JavaScript est qu'il ne permet pas de lire et d'écrire sur le disque dur du visiteur (en dehors des cookies) et du serveur.
Il est donc impossible en JavaScript de générer par exemple un fichier de connexions sur le serveur, ou un compteur de visites sur une page donnée.
De même, JavaScript ne peut pas s'interfacer avec une base de données. Impossible alors de concevoir un forum de discussion, un script de sondage ou de vote, dont les données sont stockées, soit dans un fichier, soit en base sur le serveur. Impossible aussi de lier un catalogue en base sur le serveur à votre boutique en ligne.

Les limites sont nombreuses et réelles. Heureusement, d'autres technologies existent.

Les alternatives

Il existe une multitude de technologies actuellement qui permettent de combler les lacunes de JavaScript. On peut les séparer en 2 catégories :
  • Celles dont le code est exécuté sur le poste du visiteur
  • Celles dont le code est exécuté par le serveur qui renvoie une page au format HTML
Dans la première catégorie, on peut citer Flash, Java, et d'autres qui permettent par exemple de créer des univers 3D. En général, ils nécessitent un plugin et ne sont donc pas compatibles avec tous les navigateurs. Ils repoussent les limites de l'animation graphique et offrent en général plus de possibilité de lecture/écriture sur le disque. La sécurité n'est pas assurée : plantages fréquents, accès au disque, failles de sécurité, ...

Il existe surtout de nombreux langages de scripts qui sont exécutés sur le serveur, permettant ainsi de stocker des informations et de générer des pages dynamiques à partir de bases de données. Tout JavaScript.com utilise la technologie PHP que je recommande à tous.
Les risques pour la sécurité sont nuls, car le visiteur ne reçoit que des pages en HTML, éventuellement enrichies par du JavaScript.
Si vous voulez en savoir plus sur le PHP, lisez le tutorial sur l'introduction au PHP.



J'ai, dans cette page, donné mon avis sur les limites de JavaScript. Je ne prétends pas que JavaScript est LA solution à tous nos besoins. Les languages CGI, ASP ou PHP sont indispensables. Mon but était de re-situer les possibilités de JavaScript (et de mettre en garde les internautes des risques liés aux plugins).
Tutoriel écrit par webmaster mis à jour le

Troisième édition Tout JavaScript chez Dunod

Tout JavaScript le livre chez DunodEn savoir plus
Sortie le 4 janvier 2023

Version papier 29€90
Format électronique 22€99.

Commandez en ligne

Chercher une fonction, un objet, ...

Le 20/04/2024 08:17:05 sur php 7 en 19.42 ms