Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
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
Hors ligne
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?
(rajoute un petit path aux destinations de tes fichiers et cela devrais suffire)
Hors ligne
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
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
Bonjour,
Voici mon avancement
Structure de MonModule :
[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" :
[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 :
[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
Dernière modification par Oclock (16-10-2014 10:57:39)
Hors ligne
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
Hors ligne