Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 15-10-2014 15:13:08

Oclock
Nouveau membre
Date d'inscription: 06-10-2014
Messages: 9

Sécurité et htaccess

Bonjour à vous,
Je souhaiterais sécuriser mon application.

Voici la situation :
J'ai un espace privé avec login/password/captcha pour authentification (ZfcUser)
Les utilisateurs peuvent, suivant leur rôle et leurs accès aux différent(e)s controllers/views (BjyAuthorize), envoyer des fichiers sur le serveur (Zend\Form\Element\File).
Ces fichiers sont stockés dans le dossier public/private_folder/

Le soucis :
L'application n'est pas encore spécialement bien sécurisé.
Le stockage de ces fichiers dans le dossier public/, je ne pense pas que ce soit très recommandé mais je n'ai pas réussi à les stocker autrement.
Par conséquent, les visiteurs (guest) ont accès aux documents en tapant www.monsite.com/private_folder/

exemple :
MonProjet/
  config/
  data/
  module/
  public/
    ...
    .htaccess
    index.php
    private_folder/
      unDocPdf.pdf
      unDocWord.docx
  vendor/
...

Peut-on gérer simplement ce cas avec le .htaccess ?

Faut-il que je réussisse à stocker/gérer ce dossier "private_folder" depuis la racine ?
Mais dans ce cas là, comment les views peuvent-elles interagir avec ? (par exemple, un lien dans la vue vers le fichier.. ?)

Je suis aussi à l'écoute de toutes autres indications pour améliorer la sécurité/limitation d'accès.
Merci d'avance wink

Hors ligne

 

#2 15-10-2014 15:16:56

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: Sécurité et htaccess

Bonjour,
effectivement il est plutôt déconseillé de mettre des fichiers dans le rep public ^^

pourquoi ne pas déplacer ce fichier directement dans ton module? smile
(rajoute un petit path aux destinations de tes fichiers et cela devrais suffire)

Hors ligne

 

#3 15-10-2014 15:48:19

Oclock
Nouveau membre
Date d'inscription: 06-10-2014
Messages: 9

Re: Sécurité et htaccess

Bonjour Flo,
Justement, j'y avait pensé, mais je me suis dit que mon dossier module allait être lourd ^^

En faite, la vraie raison, c'est que je stocke les liens en base de données ce qui donne par exemple :

mylinks
id |    name     |     link
0  | Mon fichier | MonPdf.pdf
1  |  ... 

que je retourne dans ma vue :
<a href="<?php echo '/documents/'.$mylink->getLink();?>"><?php echo $mylink->getName();?></a>
soit :
<a href="/documents/MonPdf.pdf>Mon fichier</a>

Dans le cas où je mets mes fichiers dans mon module, que dois-je mettre dans mon champ "link" ou dans mon lien du coup ?

flobrflo a écrit:

(rajoute un petit path aux destinations de tes fichiers et cela devrais suffire)

Peux-tu me dire où et comment procéder stp ?

Dernière modification par Oclock (15-10-2014 15:51:25)

Hors ligne

 

#4 15-10-2014 15:56:51

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: Sécurité et htaccess

tout dépendra de la où tu veux mettre ton image.

Dans ton link tu peu mettre juste le nom de ton image et ajouter une constante ou une variable dans ta class link avec le path de tes images

tu aurais du coup un href un peu comme ça :

<a href="<?php echo $mylink->getPath().$mylink->getLink();?>"><?php echo $mylink->getName();?></a>
ou
(en supposant que tu ai une classe Link)
<a href="<?php echo Link::pathImage.$mylink->getLink();?>"><?php echo $mylink->getName();?></a>

Hors ligne

 

#5 16-10-2014 10:53:13

Oclock
Nouveau membre
Date d'inscription: 06-10-2014
Messages: 9

Re: Sécurité et htaccess

Bonjour,
Voici mon avancement smile

Structure de MonModule :

Code:

[lang=php]
module/
  MonModule/
    config/
    documents/ /*<-- Stockage des mes docs */
      MonPdf.pdf /*Ma cible*/
    src/
      Controller/
        DocumentController.php
      Form/
      Model/
        Document.php /*<-- Intégration de mon PATH*/
    view/
      index.phtml /* <-- Affichage du lien*/

J'ai donc ajouté une constante à ma class "Document" :

Code:

[lang=php]
define('PATH', dirname(__DIR__).'/../../documents/');
// dirname(__DIR__) me revoit dans mon dossier "Model" alors je me place dans mon dossier de stockage..

/** @ORM\Entity */
class Document {

    public function getLink() {
        return PATH.$this->link;
    }

    public function setLink($link) {
        $this->link = $link;
    }
}

Le lien de ma vue reste donc le même :

Code:

[lang=phtml]<a href="<?php echo $document->getLink();?>">Mon Fichier</a>

Résultat, il pointe vers "file:///C:/Program File/wamp/MonProjet/module/MonModule/documents/MonPDF.pdf", le lien est donc bon.
Mais deux soucis :
  - Les membres du site voient la structure du lien. (si je le met sur un serveur web, ce doit pas être très bon niveau sécurité.)
  - Impossible d'ouvrir ce fichier, alors que le fichier est bien présent dans documents/.

Merci d'avance wink

Dernière modification par Oclock (16-10-2014 10:57:39)

Hors ligne

 

#6 16-10-2014 11:07:35

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: Sécurité et htaccess

Et bien tu peu organiser des sous dossiers avec un id unique par utilisateur pour que chacun ai son accés.

vérifie les droit d'accès aux dossiers contenants les documents smile

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages