IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

conseil conception espace client


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut conseil conception espace client
    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.doc
    fichier 2 client 1.doc
    dossier 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...

  2. #2
    Membre émérite
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Par défaut
    Citation Envoyé par grinder59


    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.
    ok. Mais pourquoi ne pas tout simplement interdire l'accès par la gestion de droits ?..ah oui le htacess. Pardon
    Citation Envoyé par grinder59
    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)
    Petite question, dans ta base de données, tu cryptes bien tes mots de passe avant de les stocker ? Si oui comment ?
    Citation Envoyé par grinder59
    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
    Oui pas mal
    Citation Envoyé par grinder59
    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)
    Vérifie aussi l'intégrité session et tout le toutim. Le x si tu le passes comme ca en dur dans le browser, tu es sur que tu es limité ?


    Sinon grosso modo, ca m'a l'air bien. Dommage pour le htacess
    Michaël Mary
    Consultant PLM dans une société de conseil toulousaine
    Auditeur CNAM-IPST depuis septembre 2008
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods
    mon cv et mon domaine et mon blog
    Aucune question technique par MP, svp

  3. #3
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    Merci pour ta réponse...

    je crypte les mots de passe via md5. Et pour l'identification je fas un truc du genre : select count(id) from utilisateur where login='$login' and password = 'md5($password)'

    sachant que login et password seront les valeurs transmises par formulaire lors de l'identification de l'utilisateur. Je pourrai ajouter une image afin d'éviter les robots spammeurs ou un test sur l'ip pour limiter le nombre d'essais.

    Concernant la session, la fonction de download vérifiera que l'utilisateur dont la session est ouverte a possibilité de télécharger le fichier dont id=x.

    La fonction de download s'exécutera depuis un popup ouvert depuis la page qui liste les fichiers du dossier client. Ainsi via un http_referrer, je pourrai vérifier qu'on accède au download uniquement via la page réservée au client.

    En revanche quand tu parles de vérifier l'intégrité de la session, à quoi fais-tu référence ?

    Merci encore

  4. #4
    Membre émérite
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Par défaut
    Fais attention aux injections SQL... Fais un test du contenu en échapant les caractès spéciaux.

    Aussi, je te conseille une recherche sur google sur le thème de tests de sécurité PHP Portals. J'ai déjà vu des sites proposant des batteries de tests quxquels on ne pense pas au premier abord.

    Validité de session => empêche l'enregistrement des identifiants par le browser.
    Michaël Mary
    Consultant PLM dans une société de conseil toulousaine
    Auditeur CNAM-IPST depuis septembre 2008
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods
    mon cv et mon domaine et mon blog
    Aucune question technique par MP, svp

  5. #5
    Membre éclairé Avatar de grinder59
    Inscrit en
    Septembre 2005
    Messages
    710
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 710
    Par défaut
    heu c'est peut être moi qui suit un peu lent mais je vois toujours pas de quoi tu parles lorsque tu dis : Validité de session => empêche l'enregistrement des identifiants par le browser.


  6. #6
    Membre émérite
    Avatar de panda31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2003
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2003
    Messages : 670
    Par défaut
    Je me suis mal exprimé. En gros, n'autorise aucun enregistrement des informations de session => tu n'utilises pas de cookies qui enregistre ces enfo n'est-ce-pas ?

    Pour résumer : c bien ce que tu as fait mais fais bien attention que tu sois bien obligé de passer par la phase d'enregistrement de l'utilisateur pour chaque connection au site.
    Michaël Mary
    Consultant PLM dans une société de conseil toulousaine
    Auditeur CNAM-IPST depuis septembre 2008
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live."
    John F. Woods
    mon cv et mon domaine et mon blog
    Aucune question technique par MP, svp

Discussions similaires

  1. Conseil - Conception pour un projet Java
    Par jurio2005 dans le forum Langage
    Réponses: 15
    Dernier message: 22/06/2007, 22h47
  2. Espace clients ?
    Par Franck.H dans le forum Langage
    Réponses: 2
    Dernier message: 18/05/2007, 16h47
  3. demande de conseil conception site web e-commerce
    Par jsdar dans le forum E-Commerce
    Réponses: 4
    Dernier message: 10/04/2007, 17h38
  4. Use Case d'un espace client
    Par poulpe77 dans le forum Cas d'utilisation
    Réponses: 6
    Dernier message: 28/01/2007, 12h48
  5. Conseils sur Application client/serveur
    Par MICHELBORLAND dans le forum Bases de données
    Réponses: 2
    Dernier message: 22/05/2006, 16h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo