Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 06/07/2006, 16h57   #1
Membre habitué
 
Avatar de remyli
 
Inscription : avril 2005
Messages : 272
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 272
Points : 113
Points : 113
Par défaut [Sécurité] téléchargement ‘sécurisé’ de fichiers

[ téléchargement ‘sécurisé’ ]

Salut @tous,

Je dois mettre en place un système de téléchargement ‘sécurisé’.

L’internaute doit d’abord remplir un formulaire dans le quel je lui demande son adresse mail.
Puis je lui envoie un mail avec une clef que j’ai enregistré dans ma base de données.

Dans le mail y’a un lien (avec la clef) et quand il clique dessus ça télécharge le produit.


Mais voila je sais pas trop comment finir

Le code de download.php le script qui est appellé par le clique sur le lien
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
<?
//d'abord on vérifit que l'internaute n'est pas arrivé là par zazard
if(!isset(!isset($_GET["code"]))
{
	exit("houst ptit malin");
}
 
//je récupére le code
$code = urldecode($_GET['code']);
 
//et si le code n'existe pas je l'envoie balader
$sql = "SELECT * FROM gl_serial WHERE serial_num = $code";
$res = mysql_fetch_array(send_sql($sql));
if(!$res)
{
	exit("houst ptit malin");
}
 
//on à bien une personne qui à demander la bonne url avec un bon code => je lance le téléchargement.
//
//  Mais je sais pas comment
//
 
// j'ais bien penser à :
header("location: ... ");
// Mais il ne faut pas que l'on puisse récupérer le fichier directement (ceci serait une faille de sécurité)
// Donc mon fichier et en dehors de l'espace web
?>
Merci de m'éclérer de vos lumières
__________________
Orthographe => Message Privé constructif svp
remyli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/07/2006, 17h02   #2
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par SoF_AzraeL
Code :
if(!isset(!isset($_GET["code"]))
Pourquoi deux isset ?? C'est aussi faux qu'inutile.

Sinon pour effectivement envoyer le fichier, voilà comment je fais pour un pdf :
Code :
1
2
3
4
5
$fileSize = filesize($filename);
header("Content-Type: application/pdf");
header("Content-Length: $fileSize");
header("Content-Transfer-Encoding: binary");
readfile($filename);
Avec $filename qui contient évidemment l'adresse du fichier, et ton fichier qui est dans un endroit inaccessible par apache (ou protégé d'une quelconque manière).

Ca répond à ta question ?
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2006, 09h38   #3
Membre habitué
 
Avatar de remyli
 
Inscription : avril 2005
Messages : 272
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 272
Points : 113
Points : 113
Par défaut .zip

Super Eusebius,
Merci.

Une derniére chose : quel est le Content-Type: d'un fichier zip ??


_______________________________
edit : j'ai trouvé


header('Content-Type: application/x-zip') ; //on détermine les en-tête
header('Content-Disposition: inline; filename=archive.zip') ;
__________________
Orthographe => Message Privé constructif svp
remyli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2006, 09h41   #4
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Je voudrais avoir une petite précision.
Pour ton cas tu veux que ça soit téléchargeable qu'une seul fois ou autant de fois qu'il utilisera cette clés ?
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2006, 09h42   #5
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par SoF_AzraeL
Une derniére chose : quel est le Content-Type: d'un fichier zip ??
Après un rapide coup d'oeil sur google (tu n'as sans doute pas accès à google... ) j'ai trouvé application/zip et application/x-zip, à toi d'essayer et de voir ce qui marche...
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2006, 09h44   #6
Membre habitué
 
Avatar de remyli
 
Inscription : avril 2005
Messages : 272
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 272
Points : 113
Points : 113
lool merci Eusebius

C'est à cause du patron .. il fait rien qu'a m'embéter


@berceker united
au début je pensai que le clef servait à télécharger le logiciel. (ici le produit est un logiciel)
Mais je viens de revoir ça avec le patron.. en fait la clef est demandée lors de l'instalation.
Et nainporte qui peut télécharger le fichier zip depuis le lui ou s'il posséde l'URL
__________________
Orthographe => Message Privé constructif svp
remyli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/07/2006, 16h25   #7
Expert Confirmé
 
Avatar de berceker united
 
Développeur informatique
Inscription : février 2005
Messages : 2 982
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : février 2005
Messages : 2 982
Points : 3 567
Points : 3 567
Citation:
Envoyé par SoF_AzraeL
lool merci Eusebius

C'est à cause du patron .. il fait rien qu'a m'embéter


@berceker united
au début je pensai que le clef servait à télécharger le logiciel. (ici le produit est un logiciel)
Mais je viens de revoir ça avec le patron.. en fait la clef est demandée lors de l'instalation.
Et nainporte qui peut télécharger le fichier zip depuis le lui ou s'il posséde l'URL
j'ai essayé mais là non j'ai pas trouvé ce qui se cache derrière ça. Bon si je comprend bien. N'importe qui peut télécharger le logiciel mais pout l'utiliser il faut utiliser la clé qui sera fournit par mail.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
berceker united est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h37.


 
 
 
 
Partenaires

Hébergement Web