protection fichier efficace

protection fichier efficace - PHP - Programmation

Marsh Posté le 13-06-2005 à 13:52:03    

J ai cherche sur le forum, mais rien de trouve convenant precisement a mon besoin.
 
Je bosse actuellement sur un site qui perment le telechargement de fichiers.
 
mes fichiers sont localises dans un repertoire /content/
 
je voudrais que l'on ne puisse avoir acces aux fichiers localises dans ce repertoire uniquement via une page de type download.php?id=XXXX
 
sachant que cette page possede un code du type :

Code :
  1. (strstr($HTTP_USER_AGENT,"MSIE" )) ? $attachment="" : $attachment=" attachment;";
  2. header("Content-type: video/x-ms-wmv" );
  3. header("Content-Disposition:".$attachment."filename=".$filename);
  4. header( "Content-Description: File Transfert" );


 
 
pour lancer le telechargement du fichier adequat.
 
Comment, via URL rewriting, definir que tous les fichiers du path content ne peuvent etre accessible que via cette page download.php ?
 
Merci d avance
 

Reply

Marsh Posté le 13-06-2005 à 13:52:03   

Reply

Marsh Posté le 13-06-2005 à 14:02:38    

.htaccess (je pense)
google est ton ami

Reply

Marsh Posté le 13-06-2005 à 14:37:04    

j ai finalement trouve un moyen efficace :
 
-> changement du nom des fichiers contenus dans le repertoire /content/ en error.php (via URL rewriting) (affichant un message du type que le fichier n existe pas, si l'utilisateur a tape l adresse http://www.xxxxx.xxx/content/movie_1.mpg)
 
-> page de telechargement download.php, qui lance automatiquement le telechargement via les headers :
 

Code :
  1. header("Content-disposition: attachment; filename=$displayed_filename" );
  2.  header("Content-Type: application/force-download" );
  3.  header("Content-Transfer-Encoding: application/force-download\n" );
  4.  header("Content-Length: ".filesize($local_filename));
  5.  header("Pragma: no-cache" );
  6.  header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public" );
  7.  header("Expires: 0" );
  8.  readfile($local_filename);
  9.  exit;


 
 
Ainsi, le fichier ne peux etre accessible que via cette page download.php.
 
Teste avec IE & Mozilla, mais bon y a sans doute des failles...
 


Message édité par nintendose le 13-06-2005 à 14:39:00
Reply

Marsh Posté le 13-06-2005 à 14:49:16    

Plus simplement, en sortant les fichiers à télécharger de la racine de ton site.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed