Archives du site

Sécurité : Protection faille XSS

Dans un ancien article je vous conseillais d’utiliser des jetons pour vous protéger de la faille CSRF. Cette faille permettait à l’attaquant de d’utiliser vos droits d’administrateur pour faire n’importe quelle action sur votre site. Nous avons bouché la faille.
Cependant le cerveau humain, et plus particulièrement celui des pirates, est très mesquin et ne manque pas d’imagination pour remplir des formulaires en essayant des valeurs exotiques. Par exemple il pourrait tenter d’injecter du code Javascript ou HTML en utilisant la faille XSS.

Initialement appelée CSS (Crossing Site Scripting) cette faille s’appelle finalement XSS pour ne pas la confondre avec les feuilles de style.

Attention, je vous entends déjà dire que, vu que ce langage s’exécute du côté client d’une application, tout code Javascript ne représente pas réellement une faille de sécurité. Détrompez-vous, les injections Javascript sont à la base du vol de session. Oui, le Javascript permet de lire les cookies du visiteurs et donne donc la possibilité de les envoyer à un autre serveur (celui d’un pirate par exemple).

Sécurité : basename

En ce qui concerne la sécurité lors de l’utilisation du système de fichiers, la fonction basename de PHP fait vite parler d’elle. Elle permet d’extraire uniquement le nom du fichier dans une chaîne de caractères.

Par exemple, utilisons le code ci-dessous qui permet de télécharger un fichier passé grâce à la méthode GET :

<?php
	$path = '/mes_fichiers/';
	$file = $_GET['file'];
	readfile($path.$file);
?>

Ce code, très simple, affiche le contenu d’un fichier. Mais voilà … il a une énorme faille.

Astuce : Forcer le téléchargement d’un fichier

Dans cet article je fais vous parler d’un problème auquel vous avez sûrement fait face si vous avez déjà fait un site qui propose le téléchargement de fichiers. Problème En effet, vous l’avez deviné, le problème se pose lorsque vous