OVH Cloud OVH Cloud

Securisation des fichiers

4 réponses
Avatar
VooDoo
Bonjour,
En vue de mise à disposition sur un extranet, je mene une reflexion sur
comment gerer la gestion d'accés a mes fichiers.
Mes fichiers sont des docs en pdf. J'ai une table qui contient le couple "id
du user" / "Id du fichier".
Dans mon tableau de visu, le user ne voit que les fichiers qu'il est sensé
voir. Par contre si il saisie manuellement l'url d'un autre fichier il y a
acces sans probleme. Le nom de fichier etant facile à deviner, cela pose
vraiment probleme...
La table user/fichier evoluant , comment puis-je faire pour securiser
l'acces a mes fichiers. J'ai regardé du coté du .htaccess, mais ca a l'air
statique comme solution...
Merci pour vos conseils.
++
VooDoo

4 réponses

Avatar
xav
Dans mon tableau de visu, le user ne voit que les fichiers qu'il est sensé
voir. Par contre si il saisie manuellement l'url d'un autre fichier il y a
acces sans probleme. Le nom de fichier etant facile à deviner, cela pose
vraiment probleme...
La table user/fichier evoluant , comment puis-je faire pour securiser
l'acces a mes fichiers. J'ai regardé du coté du .htaccess, mais ca a l'air
statique comme solution...



Salut,

pour ce genre de choses, j'utilise la methode suivante:

Deplacer tous les fichiers a lire hors de la zone accessible par le
serveur web si possible (sinon utiliser un htaccess avec un mechant deny
from all)

ensuite, tu utilises un ptit script qui prendra en parametre le nom ou
de preference l'id du fichier a lire , ce script verifie les droits de
l'utilisateur en lecture, si tout est ok , tu affiches le fichier avec
un readfile en ayant passé les bons headers juste avant.
de cette maniere pas de soucis, uniquement les users autorisés auront
leur acces.
la chose la plus delicate, c'est d'etre bien certain qu'un vilain
utilisateur n'essayerai pas de remonter dans ton arbo en utilisant un
parametre nom de fichier un peu bien pensé, c'est pourquoi, plutot que
de passer un nom de fichier, je prefere generalement recuperer un id
numerique, et je retrouve le nom du fichier et son chemin a partir de l'id.

A++
xav

exemple de viewer.php pour un pdf ( non testé tel quel hein...)

<?php

require_once 'auth_stuff.php';
define('FILE_PATH', '/path/to/files');
session_start();

if (!isset($_REQUEST['file_id'])){
echo 'parametre fichier inexistant...';
} else {
$file_id = intval($_REQUEST['file_id']);
}

if (!$user->canReadFile($file_id)){
echo 'Utilisateur non autorisé pour ce fichier...';
}


if (is_file(FILE_PATH . '/' . $file_id . '.pdf')){

header('Content-type: application/pdf');
readfile($file);
exit;
}


?>

Avatar
Patrick Mevzek
En vue de mise à disposition sur un extranet, je mene une reflexion sur
comment gerer la gestion d'accés a mes fichiers.
[..]

Merci pour vos conseils.


Ne pas mettre les fichiers dans l'arborescence web.

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
<http://www.dotandco.net/ressources/icann_registries/index>

Avatar
Arnaud BERNARD-BRUNEL
Bonjour,
En vue de mise à disposition sur un extranet, je mene une reflexion sur
comment gerer la gestion d'accés a mes fichiers.
Mes fichiers sont des docs en pdf. J'ai une table qui contient le couple "id
du user" / "Id du fichier".
Dans mon tableau de visu, le user ne voit que les fichiers qu'il est sensé
voir. Par contre si il saisie manuellement l'url d'un autre fichier il y a
acces sans probleme. Le nom de fichier etant facile à deviner, cela pose
vraiment probleme...
La table user/fichier evoluant , comment puis-je faire pour securiser
l'acces a mes fichiers. J'ai regardé du coté du .htaccess, mais ca a l'air
statique comme solution...
Merci pour vos conseils.
++
VooDoo


1)
le htacess avec deny from all
pour interdire l'acces a tous les fichiers
2)
utilise dans ton script php une classe du type telechargement par http
va voir sur www.phpclasses.com tu va trouver ton bonheur
3)
utilise la classe de facon a ce quelle demande un nom et mot de passe
avant de lancer le telechargement par cette methode

c'est la méthode que j'utilise et c'est ok

@+
et bon courage

Avatar
VooDoo
Merci à tout, j'ai utilisé la technique a xav et tout roule!
merci à toi!
++
VooDoo