Bonjour,
je suis en train de réaliser un site pour un ami. Cet ami qui n'est pas informaticien aura besoin d'un espace client pour partager des fichiers avec ses clients. Cet espace devra être très simple d'utilisation et ne pas demander des milliers de manip pour ajouter un fichier. Autre condition, sur le serveur hébergeant le site, je n'ai pas droit aux htaccess. Ces fichiers étant pour certains assez critiques (devis, factures...) je voudrais m'assurer en postant ici que je ne faillis pas aux règles de sécurité de base.
Voici donc comment j'envisage cet espace client protégé :
Voici d'abord l'architecture des répertoires :
racine >
fichiers du site
sous-rép 1 >
sous-rép 2 >
dossier client 1 >fichier 1 client 1.docfichier 2 client 1.docdossier client 2 >dossier client 3 >
Sécurité 1 : Je place un fichier index.html dans les sous-répertoires : sous-rep1 et sous-rep2 afin que le contenu de ceux-ci ne soit pas lisible directement.
Sécurité 2 : L'accès a un espace client se fait par identification qui ouvre une session pour le client
Les fichiers à partager sont des fichiers type word, excel que le client devra pouvoir télécharger directement. Donc je ne peux pas interdire aux fichiers un accès direct (et de toutes façons, je n'ai droit aux htaccess)
Sécurité 3 : Pour ne pas que l'adresse soit visible directement le fichier sera téléchargeable via un script de type : download.php?id=x. Ce script récupèrera l'adresse réelle du fichier via une base de données et lancera le téléchargement du fichier via une fonction de download utilisant la fonction PHP header
Sécurité 4 : Pour la fonction download, je vérifie que le HTTP_REFERRER est bien la page d'accueil de l'espace client afin qu'on soit obligé de lancer ce script de téléchargement du fichier depuis le site. De plus avant de lancer la fonction de download, je vérifie que le client dont la session est ouverte a bien droit d'accéder au fichier qu'il tente de télécharger (pour éviter les manipulations sur l'url : download.php?id=x, en changeant le x pour accéder à d'autres fichiers d'autres espaces par exemple)
Voilà... Ainsi mon ami n'aura qu'a créer ses dossiers clients, mettre les fichiers correspondants dedans et lancer un script qui permettra de faire la correspondance entre les fichier et un numéro identifiant (le x de mon url)
Que pensez-vous de cela ? voyez-vous des failles de sécurité quelque part ? Me suis-je suffisemment protégé ?
Merci de vos avis...
Partager