Accueil » Sécurité Informatique » La sécurité avec JavaScript

JavaScript est un langage de programmation orienté objet (à prototype) principalement utilisé sur le web. Notez en passant qu’il n’a rien à voir avec Java. Il est interprété par votre navigateur et, en somme, c’est lui qui permet d’afficher  des messages comme « Veuillez remplir tous les champs » lorsque vous souhaitez faire un achat sans mettre le numéro de votre carte bleue. Il est très pratique pour rendre les sites web interactifs.

Avec JavaScript on se situe au niveau de l’ordinateur client. Nous détaillerons les termes « client » et « serveur » par la suite.

JavaScript est déjà un minimum sécurisé, vous ne pouvez par exemple pas accéder au registre de Windows ou créer des dossiers et fichiers par défaut. Bien que ce soit faisable avec VBScript sous Internet Explorer uniquement.

Vous ne pouvez pas non plus accéder aux variables des autres sites ni voir les autres pages ouvertes par le navigateur. Vous pouvez par contre définir des cookies.

 

1) Pourquoi il ne faut pas faire confiance à Javascript si vous êtes propriétaire d’un site web

Un exemple vaut mieux que 100 mots, voyez ce lien : https://www.leblogduhacker.fr/sandbox/faillejs.html

Cet exemple est issu d’un autre site web (qui pensait bien faire) et a été copié à l’identique. Essayez de trouver le mot de passe.

Les plus aguerris d’entre vous l’auront trouvé, il suffit d’afficher le code source de la page (CTRL + U) pour afficher ce magnifique bout de code JavaScript:

 function Login(){
            var password=document.login.password.value;
            if (password=="kztYq8") {
                window.location="bravo.htm";
            }
            else
            {
                window.location="dommage.htm";
            }
        }

Erf.sécurité avec javascript

Non seulement le mot de passe y est défini en clair, il est le même pour tout le monde MAIS en plus le fichier résultant est donné. Je n’ai donc même pas besoin du mot de passe, il me suffit d’aller sur https://www.leblogduhacker.fr/sandbox/bravo.htm

Tout ça pour dire que le code JavaScript que vous écrivez est visible par tout le monde. Visible et éditable !

Mais en plus, et nous arrivons au deuxième point, il est désactivable.

 

2) Vérifier du côté client ET du côté serveur

Le côté client est le côté de tous vos visiteurs, c’est leur navigateur qui va afficher votre page. Le côté serveur est le code qui s’exécutera seulement sur votre serveur et qui est donc inaccessibles aux clients.

Ce que vous vérifiez du côté client (avec JavaScript) n’est pas fiable comme on l’a vu et doit être revérifié du côté serveur (en php/asp /etc).

Mais alors à quoi sert JavaScript ? On l’a vu au début, il sert à rendre le site plus ergonomique, plus interactif.

Reprenons un exemple :

function validateURL(val) {
   var test = /(ftp|http|https)://(w+:{0,1}w*@)?(S+)(:[0-9]+)?(/|/([w#!:.?+=&%@!-/]))?/.test(document.frmrac.url.value);
   if (test == false) {
           alert("L'URL à raccourcir n'est pas valide !");
           return false
    }
    else return true;
}

La ligne avec (w+:{0,1}…etc est une expression régulière qui va permettre de tester si une chaîne de caractère est une URL. Si la valeur retournée est false il ne s’agit pas d’une URL et vous ne pouvez donc (normalement) pas soumettre le formulaire.

Admettons que je sois malin et que je désactive JavaScript, je peux écrire n’importe quoi et soumettre le formulaire sans voir le message « L’URL à raccourcir n’est pas valide ! ».

Seulement je vérifie une nouvelle fois du côté serveur (en php donc) si le lien est bien une URL :

function validateURL($url) {
    if(filter_var($url, FILTER_VALIDATE_URL) == FALSE) return FALSE;
    else return TRUE;
}

et si ce n’est pas le cas vous avez cette fois le droit à un message « Le lien spécifié n’est pas valide ».

 

3) Aller plus loin

On a donc vu qu’il ne faut pas placer d’éléments privés dans du code JavaScript et qu’il ne faut pas se fier à lui lors de la validation de données.

C’est d’autant plus vrai qu’il est possible dans des cas précis de soumettre une donnée valide mais faussée. Et qu’il est possible de changer les données à la volée.

Je peux par exemple copier le code source d’une page, changer le code JavaScript, réenregistrer et soumettre le tout.

Je vois aussi le fameux « clic droit désactivé » sur certaines pages qui utilisent un code JavaScript pour empêcher de copier les éléments du site.

C’est INUTILE. On a vu qu’il suffit de désactiver JavaScript pour passer outre cette « restriction ».

13 Commentaires

  1. LeHackerDesBois a écrit:

    et si java script n’est pas tres securiser , tu pourait me donner un autre moyens de securiser mon site pls ??

    ps: comment tu desactive javascript sur des site ??

    • Voici un autre moyen de sécuriser un site (comme dit dans l article) avec « php » un language serveur contrairement a javaScript qui est lui un language client!
      Voila.
      Mais pour désactiver JS je suis bien curieux de savoir comment faire…

  2. Pingback: Créer un site web sécurisé - Le Blog du Hacker — Le Blog du Hacker

  3. rien de plus facile, par ex sous chrome, tu vas dans tes préférences – paramètres – confidentialité – paramètres de contenu – interdire les javascripts ! pour sécuriser ton mot de passe, passes par php myadmin (tu créées une ligne password : ton mot de passe) et tu l’appel dans ton fichier html. en gros ça va faire appel à un serveur distant auquel l’utilisateur ne pourra pas avoir accès

  4. Pingback: 5 étapes pour Débuter en Programmation - Le Blog du Hacker — Le Blog du Hacker

  5. je peux savoir si on apprendre le reseau et la programmation via un HTC EVO 3 d

  6. je veux avoir quelque cours en programmation

  7. Pingback: Les Virus Facebook, comment ça fonctionne et comment s'en protéger – Le Blog du Hacker

  8. Très interessante comme info. Je dirais que JavaScript est une excellente solution pour mettre en oeuvre lors de la validation de formulaires de saisie sur le côté client. Cela signifie que si un utilisateur oublie de saisir son nom dans une forme par exemple une fonction de validation JavaScript peut popup un message à lui faire part de cette omission.

  9. Pingback: 5 étapes pour Débuter en Programmation – Le Blog du Hacker

  10. Chardoes le maniche a écrit:

    La sécurité d’un code J.S est elle superbe?

Laisser un commentaire

Lire plus :
tor anonymat
Pourquoi TOR ne garantit pas l’anonymat

TOR utilise des serveurs appelés des nœuds entre votre ordinateur et le serveur cible que vous souhaitez accéder. Admettons par...

Fermer