Sécuriser les applications Web

Puisque les applications Web sont généralement exposées à des utilisateurs potentiellement suspects, leurs développeurs doivent prendre des précautions supplémentaires afin de les sécuriser. La vulnérabilité numéro une pour les applications Web est de trop faire confiance aux clients/utilisateurs. Les clients peuvent être malveillants et transmettre des données imprévues aux applications Web, les faisant se conduire mal. S’il existe un conseil principal, ce serait:

Ne faites confiance à aucune donnée provenant d’un utilisateur !

Cela signifie vérifier l’exactitude de toutes les données/valeurs qui proviennent du client (arguments de script, champs de formulaires, « cookies », entêtes tels que « user-agent » ou « referer », etc.). Elles doivent toutes être validées et assainies avant d’être utilisées. De plus, lors de l’affichage des valeurs fournies par l’utilisateur vers le client, ou de l’utilisation de ces valeurs pour accéder à un système externe tel qu’une base de données, ces valeurs doivent être correctement échappées (ie. les caractères spéciaux ne doivent pas être interprétés).

Si vous développez des applications Web au CERN, il vous est fortement recommandé de suivre (gratuitement) le cours "Developing secure software". La dernière partie du cours est dédiée à la sécurité des applications Web: les vulnérabilités typiques sont montrées, et les manières de les éviter sont discutées.

Les documents suivants méritent un coup d’oeil: