begin process at 2012 02 14 10:46:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Securite fichier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Securite fichier

samedi 9 octobre 2004 à 16:26:49 | Securite fichier

mortiis


Bonjour à tous

Je fait un site ou il est possible de télécharger des fichiers.
Présentement je les protège par mot de passe via un .htaccess

J'aimerais me débarasser du .htaccess et faire la même chose par programmation avec php dans le but que le seul moyen de télécharger un fichier sur le site soit en cliquant sur un lien d'une page.

Je ne veut pas que l'utilisateur puisse télécharger un fichier en inscrivant l'adresse directement dans le navigateur.

Merci d'avance pour l'aide et pour le temps.
samedi 9 octobre 2004 à 19:54:33 | Re : Securite fichier

defkrie

garde les .htacces
cree une base de donnée aves les champ
int numero | char lien
0 | http://
......

sur le site a la place du lien traditionnel
tu fais un lien vers un script php a qui tu envoie le numero par exmeple 0 il recherhce dans la base le lien et lance un téléchargemnt automatique ( boite de windows)

\-> Defkrie !?!
\->http://ndwc.fwhost.net/
samedi 9 octobre 2004 à 20:14:18 | Re : Securite fichier

mortiis


Bonjour à tous

Merci pour ce conseil, mais ce n'est pac ce que je cherche.

Parce que de cette façon, si l'utilisateur connait le lien du fichier, il peut le tabper directement dans la barre d'adresse de son navigateur et je ne veut pas sa.

De plus je ne sait jamais quels liens seront disponibles, puisque mon script liste les fichiers qui sont dans un répertoire et c'est ce qui constitu les liens de ma page. J'ajoute et j'enlève souvent des fichiers de ce répertoire et sa serait long de mettre la base de données à jour chaque fois.

Si tu a une autre solution, je suis pret a en prnedre considération.

Merci beaucoup pour ton aide
samedi 9 octobre 2004 à 20:55:17 | Re : Securite fichier

juki_webmaster

Membre Club
Autre astuce, en combination avec le message de defkrie.
Tu place tes fichiers zip/exe/tar... dans un dosseir, tu met le htaccess.
Ta table sql tu la fait comme ça :

CREATE TABLE download (
id int(11) NOT NULL auto_increment,
name varchar(255) DEFAULT '0' NOT NULL,
extension varchar(255) DEFAULT '0' NOT NULL,
code varchar(255) DEFAULT '0' NOT NULL,
nombre varchar(255) DEFAULT '0' NOT NULL,
titre varchar(255) DEFAULT '0' NOT NULL,
description varchar(255) DEFAULT '0' NOT NULL,
taille varchar(255) DEFAULT '0' NOT NULL,
dateajout varchar(255) DEFAULT '0' NOT NULL,
version varchar(255) DEFAULT '0' NOT NULL,
key id (id)
) TYPE=MyISAM;

Donc tu creer une page d'administration, tu inject les champs :
name = nom du fichier (sans l'extenstion) (ex : photoshop)
extension = extension de ton fichier (ex : .zip)
titre = titre de ton fichier (ceci sera afficher) (ex : Photoshop ! meilleur outil...)
description = desction du fichier (ceci sera afficher) (ex : creer une animation, des logos...)
version = version du prog (ex : 1.42342354354535)

Ensuite tu utilise la fonction date() avec le format que tu prefere (cf : date & heure, phpcs.com) pour le champ 'dateajout'
Taille : calcul de la taille du fichier filesize("photoshop.exe"); , 'nombre' tu met 0 ceci te permettra de faire un compteur de telechargement & enfin : 'code' que tu genere un nombre au hasard, ex : $code = rand(100000,999999);

DANS TON CODE: dés que ta la variabe $code, tu renomme le fichier par : ''.$name.''.$code.''.$extension.''

Voila, tu affiche le tout avec une while et un 'select `download` ORDER BY 'id' DESC. en sortie de la while tu aura un tableau, tu affiche le tout, comme ça tout est php.


Bon les liens doivent etre : http://tonsiteatoietrztgfrd.com/zip.php?id=NUMERO DU FICHIER&code=CODE ISSU DE LA TABLE 'code'.
Ceci selectionne la table 'download' par l'ID ($id), et sa compare le champ 'code' à $code, si il sont parail, sa telecharge le fichier par cette manniere :

'http://tonsiteatoifdsgfsdfgdfgdfg.com/fichier/'.$name.''.$code.''.'$extension.''

Dés que le script ajoute 1 au compteur de telechargement, tu renomme à nouveau le fichier, par :

$codenouveau = rand(100000,999999);
''.$name.''.$codenouveau.''.$extension.''

Et tu modifie le champ 'code' par la variable $codenouveau.

VOILA !

En claire : tu modifier à chaque telechragement le nom du fichier. (une partie)

Je te promet que si tu manipule bien le php&les requettes php, tu y reussi.

Si ta besoin d'aide supplementaire le forum est là pour ça, normalement je n'avais pas à te sortir un tel baratin, mais bon, desidement en ces jours-ci je suis assez motivier.

++
samedi 9 octobre 2004 à 20:56:40 | Re : Securite fichier

juki_webmaster

Membre Club
Desoler : nombre varchar(255) DEFAULT '0' NOT NULL, par nombre int(255) DEFAULT '0' NOT NULL,
dimanche 10 octobre 2004 à 02:07:57 | Re : Securite fichier

mortiis


Bonjour à tous

Merci beaucoup, ta solution est asser intéressante et pas trop compliquer a implanter, je n'y avait pas penser.

Cela pourra servir à plusieurs.

Par contre, sa ne convient toujours pas à mes besoins, car je ne veut pas renommer mes fichiers, car je les utilise régulièrement avec d'autres programme et je ne veut pas les modifier.

De plus si quelqu'un réussit à trouver le nom de fichier, même s'il est renommé souvent, alors il peut le télécharger.

Je sait qu'il est possible de faire en sorte que le seul moyen de télécharger un fichier soit avec un lien dans une page.
Sa se fait avec les .htaccess je crois, j'ai trouver le code d'un htaccess qui est sensé faire sa, je l'ai essayer, mais sa bloque tous mes fichiers, alors je met le contenu ici dans l'espoir que toi ou quelqu'un d'autre sache m'expliquer pourquoi sa ne fait pas ce que je veut. et comment je pourait le modifier pour arriver au résultat voulu.

RewriteEngine On
RewriteCond %{HTTP_REFERER} !=""
RewriteCond %{HTTP_REFERER} "!^http://domain/.*$" [NC]
RewriteCond %{REQUEST_URI} "\.(txt|doc|pdf|zip|mp3)$"
RewriteRule .* - [F]

Merci à tous.

dimanche 10 octobre 2004 à 02:09:46 | Re : Securite fichier

mortiis


Bonjour à tous

Ah oui, le problèmme avec ce htaccess, c'est que je ne peut même plus voir mes pages php, htm et autres, bref je ne peut plus accéder à rien du site.

Merci encore.
dimanche 10 octobre 2004 à 02:55:55 | Re : Securite fichier

juki_webmaster

Membre Club
Re,
Pas mal, pas mal ton htaccess !
Je pense qu'avec ce qu'on a fournis cela servirais bien d'autres.
Enfin bref [...]
J'espere que tu à reussi ce dont tu voulais, car un moment je me suis dit : "c'est impossible, il veut qu'on puisse pas y aceeder au fichier à distance, mais juste par une apge web..."
Bonne continuation à toi.
dimanche 10 octobre 2004 à 03:44:57 | Re : Securite fichier

mortiis


Bonjour à tous

Merci pour ton encouragement, mais connait tu les htaccess, moi pas beaucoup.

C'est pourquoi je pose cette question.
J'ai une idée de ce que ce htaccess fait, mais je ne suis pas totalement certain.
Tout ce qui est caractère spéciaux dans ce htaccess, est pour moi du chinois.

J'aimerais vraiment comprendre, pour arriver à mes fins qui sont mentionnés plus haut.

Merci encore pour tout.
dimanche 10 octobre 2004 à 07:08:51 | Re : Securite fichier

mortiis

Réponse acceptée !

Bonjour à tous

J'ai trouver la solution.

Ma solution est avec un fichier .htaccess
Aucun lien, même pas un lien sur mon site ne permet de télécharger le fichier.
Le seul moyen de faire downloader le fichier est avec un download forcé.

Voici le contenu du fichier .htaccess

AuthUserFile null
AuthGroupFile null
RewriteEngine On
ReWriteRule .*\.(pdf|zip|mp3)$ http://adresse_vers_ou_rediriger/ [R,L]

Voila sa fait ce que je veut.
Je ne sait pas s'il existe d'autres moyens et si c'est le meilleur, mais sa fonctionne et c'est appliquable aux sous doxxiers.

Merci à tous ceux qui ont tentés de m'aider.
Et bonne prog à tous.


Si sa intéresse quelqu'un voici le code PHP pour faire un download forcé :


$file = "path_complet_du_fichier";
header("Content-Type: application/force-download");
header("Content-Length: ".filesize($file));
$file_name = basename($file);
header("Content-Disposition: attachment; filename=".$file_name);
readfile($file);

À noter que ce code doit être seul dans la page, C'est à dire qu'il ne doit avoir aucun code HTML ni JavaScript ou autre.
Il ne doit pas y avoir de texte ni de print(); ni de echo ""

Personellement, moi je l'apelle dans un popup je trouve sa plus pratique.

Pour augmenter la sécurité, il est préférable de faire une redirection dans le fichier de download si l'utilisateur n'est pas enregistré (Utilisation de session) ou si la page de download n'est pas appelé à partir d'une page de votre site.


En utilisant ce fichier .htaccess combiné avec le fichier php de download forcé (avec votre sécurité dednas), d'après moi, vos fichiers sont protégés.

Si quelqu'un à des commentaires ou connait un meilleur moyen, j'aimerais savoir.

Alors la j'ai finis Bonne prog.

1 2 3

Cette discussion est classée dans : fichier, site, télécharger, htaccess, securite


Répondre à ce message

Sujets en rapport avec ce message

Fichier HTACCESS [ par slhuilli ] Bjr,Quelqu'un aurat il déjàç développé un outiil PHP générant un fichier .HTACCESS car j'ai beaucoup de mal d l'écrire.Merci de vos réponses.SLSébasti securite lors d'un upload [ par erich10 ] j'ai un formulaire pour uploader un fichier dans un repertoire .Pour le faire mon repertoire est en chmod777, comment puis je faire pour interdire l'e fichiers htaccess [ par glipper ] Bonjour,les fichiers .htaccess servent à proteger l'acces à un (ou des) repertoires. Je suppose donc que ce fichier est lu avant n'importe quel autre fin de fichier [ par morgandetoi06 ] hellole moteur de recherche du site par en sucette donc je pose ma question sur le forum meme si la solution doit etre deja expliquée dans le site...c Effacer un fichier [ par ben01n ] salut a tous,j'ai un petit problème. Je suis en train de faire une page php pour effectuer la maintenance du site. pour cela j'aimerai pouvoir effacer Test de presence d'un fichier en local ?? [ par djes106 ] Bonjour,Voila l'histoire, je développe 1 site web, et pour un meilleur affichage du site, j'ai besoin de tester la présence d'une police de caractere Upload a partir d'un site ? Possible??? [ par supergrey ] Bonjour, je voudrais savoir s'il est possible d'uploader un fichier a partir d'un site web exmple: http://www.monsite.com/fichier.jpgvers le serveur pb htaccess + htpasswd [ par girlbond ] bonjour,j'ai créé un fichier htaccess qui contient ceci :AuthUserFile c:/program files/easyphp/www/gpi/ .htpasswdAuthGroupFile /dev/nullAuthName ByPas htaccess sur un repertoire et toutes ses pages [ par rastagnol ] bonjour ! j'aimerais savoir comment faire un fichier htaccess sur un repertoire et toutes ses pages actuellement, j'ai mis un fichier htaccess avec de .htaccess [ par x0s ] Bonjour, Beaucoup de monde utilise les htaccess aujourd'hui et il y a des erreurs récurrentes qui ne sont pas cité sur les sites d'aide:le fichier nom


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales