Comment rajouter des ip dans un .htaccess juste en passant sur le site

Comment rajouter des ip dans un .htaccess juste en passant sur le site - PHP - Programmation

Marsh Posté le 12-10-2005 à 12:16:15    

Bonjour, je recherche un code en php, java ou autres.. qui permetterai de rajouter l'ip du surfeur  dans un .htaccess
Voici le code du .htaccess :
 
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName AccesRestreint
AuthType Basic
 
<limit GET POST>
order deny,allow
deny from all
allow from 192.168.0.1
allow from 127.0.0.1
allow from "et plein d'autre ips ici qui se rajoute"
</Limit>
 
Ceci est fais pour obliger les gents a passer sur mon site pour télécharger (principalement pour la pub google ^^) Puis aussi pour eviter que les BLOGs donne mes liens en direct.. Tout ceci est sur des créations de video de jeux(cs, q3, wow).. mapping etc.. (site en construction). Mais deriere un gros server a payer d'où cette protection qu'il me faut absolument


Message édité par Caquistos le 12-10-2005 à 12:21:40
Reply

Marsh Posté le 12-10-2005 à 12:16:15   

Reply

Marsh Posté le 12-10-2005 à 13:32:04    

Bonjour,
 
J'ai eu a peu pres le même probleme afin de limiter le téléchargement des fichiers aux seuls utilisateurs enregistrés de mon site.
Ma solution a été de faire un petit fichier dl.php que j'appele : dl.php?id=1212 avec id l'id de mon fichier dans ma base de donnée.
 
Je fais donc mes tests d'identification en php et je protege le repertoire de telechargement avec un deny from all.
Le principe est que le script php a qd meme le droit d'aller lire ce fichier. Il te suffit de faire un readfile par exemple. Associé à quelques headers (que je n'ai plus en tete desolé) tu peux entrainer le téléchargement du fichier.
Je n'ai pas le code sous la main ici mais si ça t'interesse je peux te donner ça ce soir...
 
Bonne prog


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Marsh Posté le 12-10-2005 à 13:53:56    

Ahh vi pourquoi pas ! C'est sur ca serra peut etre plus simple comme ca.. Je veux bien tester ton script alors ;) au cas où mon mail est caquistos2k@yahoo.fr je t'en remerci d'avance !

Reply

Marsh Posté le 12-10-2005 à 23:31:48    

Code :
  1. <?
  2. include('motdepasse.php');
  3. if(!empty($_GET['f'])){
  4. $file = $CONF['upload_path'].$_GET['f'];
  5. $size = filesize ($file);
  6. $saveName = basename ($file);
  7. header ('Expires: 0');
  8. header ('Last-Modified: ' .
  9. gmdate ('D, d M Y H:i:s', filemtime ($file)) . ' GMT');
  10. header ('Pragma: public');
  11. header ('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  12. header ('Accept-Ranges: bytes');
  13. header ('Content-Length: ' . $size);
  14. header ('Content-Type: Application/octet-stream');
  15. header ('Content-Disposition: attachment; filename="' . $saveName . '"');
  16. header ('Connection: close');
  17. readfile ($file);
  18. }else{
  19. print('file missing');
  20. }
  21. ?>


 
par contre il faut sécuriser le script car là il permet a n'importe qui de télécharger des fichiers de n'importe quelle extension (et meme php sans qu'ils soient executer par le serveur)...
$_GET['f'] contient le path vers ton fichier.
Tu peux rajouter un session_start en haut et faire toutes les verifications necessaire pour savoir si ton utilisateur est bien logué et surtout que le path est correct


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Marsh Posté le 12-10-2005 à 23:36:28    

Ha si voila j'ai retrouvé ma fonction pour verifier qu'un path est correct
 

Code :
  1. /**
  2. * Check if a path is deeper than the home
  3. * directory set for downloads.
  4. * Remove ./ and ../
  5. *
  6. * @param $path the path to check
  7. * @param $upload_path the root path for download files
  8. * @return true only if the path is deeper than home
  9. */
  10. function checkPath($path,$upload_path) {
  11. $home = realpath($upload_path);
  12. $real_path = realpath($path);
  13. if(!$home || !$real_path) {
  14.  return !strpos("..",$path);
  15. }else {
  16.  return !strcmp($home,substr($real_path,0,strlen($home)));
  17. }
  18. }


 
et tu fais :
 
if(checkPath($_GET['f'],'path/to/dl/directory/')){
  //download
}else{
  //va t'en mechant garçon
}


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Marsh Posté le 13-10-2005 à 14:59:14    

Oukidoki merci pour tout ca ! Je vais faire un grand pas en avant grace a ca ^^

Reply

Sujets relatifs:

Leave a Replay

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