Bonjour,
Je suis en train de créer un site sécurisé avec cakephp. (Intranet)

La premiere page du site est une page de login, où l'utilisateur peut s'identifier afin d'arriver sur la partie protégée par "Auth".

Sur cette partie protégée, j'aimerais que l'utilisateur puisse télécharger des pdf's que j'aurai mis en ligne.

Jusque la, je n'ai pas trop de problème cela fonctionne, ce qui me tracasse c'est que comme le fichier est une url,n'importe qui avec le lien vers le fichier pdf pourrais le télécharger sans même être loggué, sans compter les robots et autres aspirateurs de sites.

Auriez vous une piste pour faire un downloader sécurisé? En cherchant sur google, je vois qu'on parle d'un Htaccess sur les répertoires afin qu'ils soient sécurisés, ou via CakeResponse::file() en donnant un chemin hors du webroot.

Avez vous déja développer ce type de système? je suis un peu perdu étant débutant sous cakephp et j'aimerais avoir quelques pistes pour dévelloper ça.

D'avance merci

2 réponses


snap
Réponse acceptée

Hello!
Le plus sécurisé est de faire en sorte (1) que les fichiers soit totalement inaccessible par url (soit ils sont placés dans un dossier au dessus du dossier webroot, par exemple app/uploads/ au lieu de app/webroot/uploads), soit tu place un .htaccess dans le dossier d'upload pour refuser l'accés a tout le dossier) et (2) que les fichiers soient envoyés par php via un controller (section 3 et 4 de la réponse précédente sans la partie hashage).
Ainsi à l'url monsite.fr/downloads/le-nom-du-pdf (si l'user a le droit) le controlleur Downloads peut renvoyer le fichier directement (sans que celui-ci soit accessible par une url):
De manière rapide : readfile($CheminDuPdfSurLeServeur)
Un peu plus poussé : http://www.xorax.info/blog/programmation/259-x-sendfile.html

guilux
Auteur

bonjour. merci a vous 2 pour toutes ces informations. je n ai plus qu a me mettre au travail :-)