Un peu de sécurité -...

58
Un peu de sécurité le XSS ou cross site scripting un pirate peut déposer du javascript sur le site: <script>alert('bonjour')</script> ce script peut envoyer l'utilisateur sur un autre site attaquer la machine du client: diffuser les données accessibles à javascript, planter la machine effectuer des actions sur le site avec l'identité de la victime le reste, c'est surtout côté serveur :-)

Transcript of Un peu de sécurité -...

Un peu de sécurité

● le XSS ou cross site scripting

– un pirate peut déposer du javascript sur le site:

– <script>alert('bonjour')</script>– ce script peut

● envoyer l'utilisateur sur un autre site● attaquer la machine du client: diffuser les

données accessibles à javascript, planter la machine

● effectuer des actions sur le site avec l'identité de la victime

● le reste, c'est surtout côté serveur :-)

Ergonomie et Accessibilité des pages Web

● Ergonomie: adaptation de l'application web aux utilisateurs

● Accessibilité: ergonomie de l'application dans des conditions spécifiques (handicap, navigateurs spéciaux)

Bibliographie

● Amélie Boucher, Ergonomie Web● Jenifer Tidwell, Designing interfaces● http://w3c.org/docs/accessibilite.html● http://www.crim.ca/files/documents/services/rd/

GuideErgonomique.PDF● http://pompage.net

Ergonomie

● choix de couleurs, de présentation, de graphisme, de mode de navigation...

mais aussi● organisation du site, logique de la présentation

des informations

Questions de départ

● à quoi sert le site ?● qui l'utilisera ?● pour faire quoi ?● dans quel contexte ?

Règles (d'après A. Boucher)

● Site bien organisé● Pages bien organisées● Site cohérent● Respect des

conventions● Information

pertinente

– feedback, position● Vocabulaire adapté (y

compris icônes)

● Aide et guidage● bonne gestion des

erreurs● rapidité● L'internaute est le

chef● Accessibilité● Satisfaction de

l'internaute

Connaître son public

● Savoir à qui et pourquoi est destiné votre site!● se fabriquer des « personas », utilisateurs

virtuels, qui ont des objectifs par rapport au site● Avoir des utilisateurs sous la main● Faute de vrais utilisateurs, se contenter de

cobayes... c'est nettement mieux que rien● observer les utilisateurs en test

Cohérence

● Graphique● De l'organisation des pages (position des

éléments)● Du vocabulaire

Respecter les conventions

● Ne pas casser ce qui existe● Conserver les bases de la navigation web:

boutons avant, arrière, bookmarks● codes de couleur et présentation des liens● limiter les soulignés aux liens hypertextes... ● mais ne pas les supprimer sur les dits liens

Conception d'un site

● Définir le contenu et l'utilité du site ;● Regarder les sites similaires ;

– idée d'organisation ;– conventions ;

● Architecturer l'information ;● Maquette, découpage en zones ;

Arborescence

Tri de cartes

Méthode pour définir l'organisation d'un site

But: choisir l'organisation qui semble la plus logique aux utilisateurs

Pour chaque cobaye● cartes avec contenus, services, etc...● les participants peuvent corriger les titres● ensuite chacun regroupe les cartes● et donne un titre à chaque groupe

Les résultats sont analysés pour proposer une organisation.

Navigation

● L'organisation de la navigation doit correspondre au schéma des utilisateurs, pas forcément à celui de la base de données ou de la compagnie

● Les éléments importants doivent être accessibles rapidement

● L'utilisateur ne doit pas être perdu

Navigation

● largeur● profondeur (chemin d'accès)● où suis-je, d'où viens-je, où vais-je● éviter de laisser actif un lien vers la page

courante (hors formulaire)● navigation orientée action● navigation orientée information

Règle des trois clics

● Pseudo-règle qui dit que:

toute information doit être accessible en trois clics

● Le nombre de clics n'est pas franchement le principal:

– Il faut que l'utilisateur sache où il va et ne soit pas perdu

– il faut éviter les manipulations inutiles pour l'utilisateur

Organisation de la page

● mettre en évidence ce qui est important

● grouper les éléments de navigation par famille

● zonage● La page de garde peut être

un peu à part

Données sur les éléments de navigation important

● les éléments de navigation (icônes, menus, liens) doivent être gros

● ils doivent être proches (pas trop, pour éviter les erreurs)

Taille des pages

On peut parfaitement avoir des pages très longues !

● Une page « de contenu » peut être longue (attention aux temps de chargement)

● Une page de navigation doit comporter les éléments importants dans sa partie supérieure!

Contrainte des petits écrans (PDA, mobiles)

● multi-colonne peu raisonnable

– prévoir une CSS pour les « handheld »● navigation différente (en particulier portables)● contenu dépendant du lecteur:

– Il suffit de créer une classe ad-hoc:● <div class='portable'>....</div>● dans la CSS pour media=screen :

.portable {display: none;} (caché)● pour media=handheld

.portable {display: block;} (visible)

Charte graphique

● Décrit les éléments graphiques fondamentaux des pages: logos, choix des couleurs, fontes...

● Doit être respectée dans tout le site● Avec parfois des variations contrôlées quand le

site est très grand ● Les CSS aident beaucoup

CSSZENGARDEN.COM

Éléments graphiques

● Animations : à éviter quand elles ne sont pas nécessaires!

● clignotement : à proscrire absolument● Icônes (et autres): faciles à reconnaître, simples

Typographie

– se documenter sur la typographie en général● Ne pas utiliser trop de familles (2,3 ou 4 au

maximum)● limiter l'utilisation de MAJUSCULES et d'italiques à

la mise en valeur

– pas de contrôle total et réel sur le rendu

Rédaction

● éviter le langage technique (du type « cliquez sur le contrôle select ».

● Soyez concis. Coupez tout texte inutile

Rédaction des liens

● éviter « cliquer ici ».● ne pas écrire

– Vous pouvez télécharger mon logiciel en cliquant ici.

mais

– Vous pouvez télécharger mon logiciel

Éléments classiques

● Page d'accueil● Informations de contact● Aide● Fonction de recherche

Page d'accueil

– peut présenter les nouveautés– menu– fonction du site– aiguillage vers des sous-sites– éviter si possible les pages

« couvertures » (splashscreen), qui n'apportent rien et énervent le visiteur

– quadrature du cercle: page attractive et rapide à charger

Fournir une fonction de recherche

● On peut assez facilement utiliser google pour chercher les parties publique d'un site

● La plupart des Content Management System intègrent de telles fonctions

KISS: Keep It Simple, Stupid

● google:

Utiliser un CMS

● Content Management System

– proposent des fonctionnalités de base– permettent l'ajout d'information par les

utilisateurs– sont extensibles

● SPIP● Drupal● Typo3● ... (il y en a plein!)

SPIP: http://www.mairie-chorges.fr

SPIP

http://www.yahoo.com/

Accessibilité

● Techniques permettant l'utilisation d'un site (ou d'un logiciel en général) à des personnes handicapées

– handicaps de perception– handicap moteurs– handicap cognitifs

● http://www.w3.org/TR/WCAG10-HTML-TECHS/

Bénéfices secondaires

● Utile pour la lecture dans des contextes différents (PDA)

● Moteurs de recherche

– les informations ajoutées pour aider à la lecture des pages aident aussi les systèmes d'indexation.

Règles minimales

● HTML correct et bien utilisé● Le contenu a un sens quand il est lu● Le contenu visuel est bien remplacé● Titres et des liens ont un sens hors du contexte

(facilite la navigation)

Éviter

● Un contraste peu élevé dans les graphismes et dans la CSS.

● Des combinaisons de couleur qui ne sont pas facilement distinguables pour les daltoniens.

● Une police trop petite ou qui ne peut pas être redimensionnée.

● Le chevauchement d'éléments qui deviennent illisibles avec une police plus grande.

Couleurs

● perception très variable● passer la page en noir et blanc (par exemple

avec GIMP ou un logiciel de dessin). Elle doit rester lisible

● autre test: impression en noir et blanc● changer la taille des fontes dans le navigateur.

Le site doit rester utilisable

Rendre le texte accessible

● Lisibilité● Accès par un système de lecture automatique

Lecture automatique

● Pour rendre un texte correctement, un système de lecture doit connaître la langue dans laquelle il est écrit

● importance de l'attribut lang :

<p> Je conseille la lecture de <em lang="en">Designing Interfaces</em><p>

Images et alt

● alt: modes « non graphiques » de rendu des pages: texte seul, audio. Aide pour l'indexation

● Mettre à "" pour les images « décoratives »

– garantie que l'image en question sera simplement ignorée

● alt explique le « pourquoi » de l'image

– bouton : label du bouton...

L'attribut longdesc

● longdesc : renvoie vers une page web complète. Le lien n'est visible que si l'image n'est pas affichée. Ne fonctionne pas partout

● Le plus léger: décrire l'image dans le texte « normal »

● Autre solution: mettre un lien vers une description de l'image.

Règle pour « alt »

● Texte assez court ● Penser que le texte sera lu

– il ne doit pas dupliquer l'information du texte principal

– il ne doit pas apporter des informations qui ne sont ni dans l'image, ni dans le texte principal

● le contenu de alt est contextuel !● alt="" est parfaitement légitime

Exercices d'accessibilitéou de l'art de rédiger les

attributs alt

Exercices

● Quelle est le meilleur « alt » ?

1) le dieu Horus de Bouhen

2) ""

3)Représentation en couleur d'un dieu à tête de faucon. Il porte une couronne rouge et or, son corps est ocre, et

4)Représentation vivement colorée d'un dieu à tête de faucon.

Les couleurs du temple de Beit-el-Wali sont très bien conservée

Exercice1)Le dieu Horus de Bouhen2)""3) Horus de Bouhen est représenté comme un homme à tête de faucon portant la double-couronne

Horus de Bouhen est une des formes d'Horus spécifiques à la Nubie.

Exercice

1)Le dieu Horus de Bouhen2)""3)Le dieu Horus de Bouhen, représenté comme un homme à tête de faucon portant la double-couronne

Horus de BouhenCette forme nubienne d'Horus est représentée au temple de Beit-el-Wali comme un homme à tête de faucon, portant la double couronne.

Documenter les tables

● But: expliquer ce que sont les tables, et quels titres sont reliés à quelles cases

● Attribut « summary »: permet de décrire la table pour en donner une vision d'ensemble

<table summary="cette table décrit les horaires des cours des étudiants de DUT, en fonction de la demi-journée et du jour de la semaine">

<caption>Horaires</caption>

....

Documenter les tables

● Expliquer la fonction des colonnes● Plusieurs solutions:

– attribut « scope »– attribut headers– combinaison de headers et de l'attribut axis

Attribut scope

● valeurs possibles: row, col

● exemple:

<table summary="...."><tr>

<th scope="col">Horaire</th>

<th scope="col">Lundi</th>....

</tr><tr>

<td scope="row">9h-12h</td>

<td scope="row">14h-17h</td></tr><tr> <td>Programmation</td>

<td>Économie</td></tr></table>

14h-17h

9h-12h

Lundi MardiHoraire

Attribut headers

● Spécifie quels sont les en-têtes relatifs à une case

● référence l'id des headers concernés

id='h4'

id='h3'

headers='h3 h4''

Attributs headers<table summary="...."><tr>

<th id="ho">Horaire</th><th id="lundi">Lundi</th>....

</tr><tr>

<td id='matin' headers='ho'>9h-12h</td><td id='apresmidi' headers='ho'>14h-17h</td>

</tr><tr>

<td headers='lundi matin'>Programmation</td><td headers='lundi apresmidi'>Économie</td>

</tr></table>

ACCESSKEY

● raccourci lié à un élément de page: lien, label de formulaire

● accès divers selon les navigateurs

– CTRL (Safari), ALT (firefox linux), etc.● éventuellement en concurrence avec les

raccourcis du navigateur● on conseille de se restreindre aux chiffres

ACCESSKEY

● Liste du gouvernement anglais:● S: contenu● 0: liste des touches● 1: page d'accueil● 2: actualités● 3: carte du site● 4: début d'un formulaire● 5: annexes (index, etc.)● 6: aide à la navigation● 7: contact (email)● 8: informations légales● 9: contact par formulaire (livre d'or, etc.)

trucs et astuces

● lien « passer au contenu »● utilisation de display: none● media=handheld,print,reader● préférer les dimensions en em et pas en pixels

Exercice

● On veut concevoir le site web (intra et extranet) d'un lycée

– proposer une architecture pour le site– proposer une maquette des pages

● données et actions intéressantes:

– liste des élèves, notes, liste des professeurs, coordonnées, récit du voyage linguistique, circulaires du proviseur, appréciations, horaire des cours, contacter un enseignant, travaux des élèves, nouvelles de l'établissement, matériel emprunté