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 :

[Conception] Protéger des données payantes


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 32
    Points : 28
    Points
    28
    Par défaut [Conception] Protéger des données payantes
    Bonjour à tous,


    Je suis webmaster d'un site pour une entreprise.

    Celle ci vend des documents (pdf) sur internet. Et j'aurais voulu savoir la meilleure méthode pour protéger ces données.

    Ce que je pensais c'était qu'une fois que la personne aurait payé, elle recevrait les documents par mail.
    Mais comment les heberger sans que tout le monde puisse les utiliser.

    Merci de m'indiquer ce qui se fait généralement dans ce genre de situation.

    François

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Il faut plutôt voir du côté des fichiers .htaccess .

    Bonne soirée.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 32
    Points : 28
    Points
    28
    Par défaut
    Bonjour, merci de vous intéresser à mes questions.


    Je me suis renseigné sur les fichiers .htaccess, mais peut -on les créer automatiquement lorsque quelqu'un achète un document ?
    Peut on consulter directement la base de données, ou doit -on faire une page php qui (re)crée le .htaccess a chaque fois.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 201
    Points : 108
    Points
    108
    Par défaut
    Salut,

    La meilleure solution est d'utiliser les sessions:

    - L'utilisateur paye le document
    - Tu gardes une trace des documents payés dans une table (ex: id, id_doc, id_user)
    - Lorsque ton utilisateur est loggé, tu sais exactement quels documents il a acheté, tu lui proposes une liste depuis cette même table
    - Tu fais une page de download qui se charge d'envoyer le document:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (isset($_SESSION['client']) && isset($_GET['id_doc'])) {
     
        /* Tu vérifies que le document existe et que l'utilisateur l'a bien payé */
     
        /* Si oui */
        header('Content-type: application/pdf');
        readfile('/rep/racine/pdf/fichier_protege.pdf');
    }
    Voilà, je pense que c'est la meilleure solution pour avoir travaillé dessus récemment (Merci à Sub0 d'ailleurs ;)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Le fichier reste accessible sans payer.

    Je m'explique, une personne, peut payer une fois le fichier, et y avoir autant de fois qu'elle le souhaite accès à ce fichier. (Si elle fait attention au lien)
    Or si cette personne redistribue le lien à d'autres personnes, elles n'auront pas à payer ce fichier.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 201
    Points : 108
    Points
    108
    Par défaut
    Citation Envoyé par SpiritOfDoc
    Le fichier reste accessible sans payer.

    Je m'explique, une personne, peut payer une fois le fichier, et y avoir autant de fois qu'elle le souhaite accès à ce fichier.
    La personne ayant acheté le fichier, je suppose qu'il est préferable de lui autoriser l'accès à celui-ci "autant de fois qu'elle le souhaite".
    Dans le cas d'un téléchargement en nombre limité, il suffit de rajouter un champs dans la base de données nb_downloads et de l'incrémenter à chaque appel valide de la page de téléchargement. Ensuite une simple vérification par rapport à une constante prédéfinie MAX_ALLOWED_DL et le tour est joué...
    Je pense pas que ça soit une très bonne idée étant donné qu'un téléchargement peut échouer une ou plusieurs fois et là la personne qui a payé son fichier et qui ne peut pas le télécharger parce que ses X tentatives ont échoué sera bien contente...

    Citation Envoyé par SpiritOfDoc
    Or si cette personne redistribue le lien à d'autres personnes, elles n'auront pas à payer ce fichier.
    Observe le squelette que j'ai fourni. La seule manière d'accéder au fichier est d'être loggé et de l'avoir acheté. A moins d'avoir les informations de connexion de l'utilisateur qui a acheté le fichier ou de récupérer un ID de session encore valide, je ne vois pas comment tu pourrais faire...

  7. #7
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    Voici un sujet qui devrait t'intérresser je pense :
    http://www.developpez.net/forums/showthread.php?t=34384

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Points : 422
    Points
    422
    Par défaut
    Citation Envoyé par hush
    Observe le squelette que j'ai fourni. La seule manière d'accéder au fichier est d'être loggé et de l'avoir acheté. A moins d'avoir les informations de connexion de l'utilisateur qui a acheté le fichier ou de récupérer un ID de session encore valide, je ne vois pas comment tu pourrais faire...
    Oui mais moi je parle du fichier, il est bien stocké à un endroit précis du serveur.
    On peut donc y accéder vu qu'il n'y a aucune restriction dans le dossier.

    Par exemple, pour télécharger un fichier, le lien ressemble à ceci :
    http://www.site.com/dossier/dossier/.../fichier.zip (par exemple).

    Avec ta formule, en rentrant directement l'URL dans ton explorer tu auras le fichier, alors qu'avec un .htaccess, ce n'est plus possible .

    Peut-être que je me trompe, mais bon, avec ce que tu m'as montrés, je ne le pense pas.
    Par contre, ta méthode est plutôt efficace quand il s'agit de fichier "peu" précieux.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 201
    Points : 108
    Points
    108
    Par défaut
    Oui en effet, il est évident que le fichier doit être stocké hors du répertoire web... C'est ce que je voulais montrer dans le code par /rep/racine/pdf

  10. #10
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 393
    Points : 15 754
    Points
    15 754
    Par défaut
    Citation Envoyé par hush
    Je pense pas que ça soit une très bonne idée étant donné qu'un téléchargement peut échouer une ou plusieurs fois et là la personne qui a payé son fichier et qui ne peut pas le télécharger parce que ses X tentatives ont échoué sera bien contente...
    je suis tout à fait d'accord
    je rajouterai aussi que si cette personne veut donner le fichier à quelqu'un d'autre rien ne l'empêche de l'envoyer directement par e-mail en pièce jointe

  11. #11
    Invité
    Invité(e)
    Par défaut
    je suis ok pour laisser le fichier disponible a lutilisateur en téléchargement autant de fois quil veut.
    pour stocker le fichier
    solution1 : tu le met juste en dehors de espace web
    exemple
    RACINE
    +cgi/
    +www/
    +mes_fichiers/

    il ne pourra pas acceder au repertoire mes_fichiers vu qu'il est hors web.

    solution 2 : utilisation de htaccess, avec un deny all qui interdira à tout le monde d'y acceder
    exemple
    RACINE
    +cgi/
    +www/mes_fichiers/

    et dans mes_fichiers/tu met le .htaccess

Discussions similaires

  1. [Conception] Recuperer des données dans un tableau dynamique
    Par Tartanjet dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/09/2006, 00h28
  2. [Conception] affichage des données
    Par fabrice88 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 08/07/2006, 15h14
  3. [Conception] affichage des données
    Par fabrice88 dans le forum Décisions SGBD
    Réponses: 0
    Dernier message: 06/07/2006, 18h46
  4. [Conception] Afficher des données en fonction du mois.
    Par fabrice88 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 05/06/2006, 10h31

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