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

Symfony PHP Discussion :

Interdire l'accès aux fichiers du projet lorsque l'utilisateur n'est pas connecté


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Par défaut Interdire l'accès aux fichiers du projet lorsque l'utilisateur n'est pas connecté
    Bonjour,
    J'ai un dossier de fichier pdfs à la racine de mon projet symfony. Lorsqu' un utilisateur saisit le chemin complet vers un pdf, le fichier s'affiche même si l'utilisateur n'est pas connecté à l'application.
    Comment bloquer toute tentative d'accès à un fichier du projet si l'utilisateur n'est pas connecté?

    Merci.

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Salut,

    Je ne peux pas te répondre spécifiquement pour symfony.
    Par contre d'une manière générale il suffit de mettre tes fichiers pdf dans un dossier protégé par un fichier .htaccess avec la mention "deny from all". Cela interdira l'accès à ces fichiers depuis une url. Ensuite tu pourras les faire lire par php (après connexion) avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header('Content-type: application/pdf');
    readfile("PROTEGES/mon_fichier.pdf");
    Une variante consiste à proposer le fichier en téléchargement.

  3. #3
    Membre éprouvé
    Ingénieur d'études et de développement
    Inscrit en
    Juin 2009
    Messages
    112
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur d'études et de développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2009
    Messages : 112
    Par défaut
    Si un utilisateur a accès aux fichiers c'est qu'ils sont sous le répertoire web, n'est-ce pas ?

    Ce n'est pas une bonne pratique. Les fichiers présents sous web sont les fichiers publiques qui peuvent être accédés par n'importe qui (utilisateurs, robot comme google, aspirateur de site).

    Or tu veux gérer des autorisations sur ces fichiers. Je te recommande donc des les mettre dans un dossier "uploads" ou "data" que tu placeras au même niveau que web. Il sera donc inaccessible (n'oublie pas ta config htaccess pour la sécurité).

    Ensuite il te faudra créer une route qui permettra la récupération de ces fichiers. Exemple : www.mon-site.com/download/nom-du-fichier.pdf

    Cette route appellera une fonction de controller et dans cette fonction tu pourras parfaitement autoriser le téléchargement du fichier ou l'interdire.

    Ainsi tes fichiers sont parfaitement sécurisés, non accessibles depuis l'extérieur. Tu peux même les renommer avant envoi, stocker en base le fait que le fichier ait été téléchargé… bref tu peux tout faire.

  4. #4
    Candidat au Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Par défaut
    Ok!Merci ABCIWEB et Damiensan.Je teste tout cela et je reviens vers vous.

  5. #5
    Candidat au Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Février 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2015
    Messages : 4
    Par défaut
    J'ai testé et ce n'est pas toujours résolu; quand l'utilisateur n'est pas connecté, il n'a pas accès au dossier pdf. Même quand il est connecté une erreur 403 est générée lorsqu'il veut accéder à un fichier du dossier pdf. Je vais vous décrire plus explicitement ce que je fais:
    J'ai un dossier pdf à la racine de mon projet symfony qui contient des fichiers pdfs et un fichier .htaccess qui contient "deny from all".
    j'ai une vue twig qui contient un bouton qui permet de déclencher l'export de l'iframe contenue dans la page. Lorsqu'on clique sur le bouton de l'export une requête ajax est construite; Dans la requête ajax je fais appel à un controlleur qui va faire l'export et me retourner l'url du pdf généré. Quand la requête ajax recoit une réponse de succès il ouvre le pdf en utilisant l'url qui a été envoyé. Pour cela j'utilise un window.open(url_du_pdf_genere); L'export est bien réalisé mais l'ouverture du fichier avec window.open me renvoi une erreur 403.

    Ma question est comment ouvrir le pdf qui est protégé avec htaccess avec jquery?
    Sinon quel autre principe je pourrai utiliser pour réaliser cela?j'aimerai que lorsqu'on clique sur le bouton d'export, à la fin de l'export un nouvel onglet est ouvert et contient le pdf généré.

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Il faut faire lire le fichier par php comme dans l'exemple que j'ai donné. Pas besoin de passer par jquery.

Discussions similaires

  1. Interdire l'accès aux fichiers JS
    Par movlw dans le forum Apache
    Réponses: 7
    Dernier message: 27/06/2015, 11h46
  2. Interdire l'accès aux fichiers pdf
    Par fveto dans le forum Apache
    Réponses: 1
    Dernier message: 16/06/2015, 15h14
  3. Interdire l'accès aux fichiers d'une session
    Par rec82 dans le forum Windows XP
    Réponses: 1
    Dernier message: 01/03/2011, 14h49
  4. Interdire l'accès aux fichiers dans certains cas
    Par ant0inep dans le forum Langage
    Réponses: 1
    Dernier message: 04/10/2010, 16h04
  5. Réponses: 1
    Dernier message: 23/08/2009, 16h56

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