8791 sujets

Développement web côté serveur, CMS

Salut a tous , bon voila je ne sais pas si je suis dans la bonne section (a mon avis non) donc déplacer le sujet si tel est le cas.

Mon problème est que j'ai installé un joomla avec maianmusic (vente en ligne d'mp3s) , tout fonctionne très bien (je vend mes instrumentales pour info'), mais j'ai un dossier qui contient le mp3 dit "court" pour la demo en ligne avant achat et un dossier avec mes mp3s complet.

J'aimerais bien savoir comment je pourrais faire pour protégé mes dossiers tout en continuant a pouvoir le télécharger via le site (les membre reçoivent un mail avec l'url de téléchargement crypter). J'ai bien essayer de le faire avec un htaccess "deny from all" mais la le lecteur flash ne reconnait plus les mp3s (pour les démo). J'ai essayé aussi de mettre les dossier avant le "www" de mon serveur mais la aussi le module joomla ne reconnait pas le chemin indiqué.

Avez vous des solution aussi concernant les aspirateur de site ou autres downloadhelper (FF) qui doivent sans doute voir mon dossier contenant mes mp3s payant...

Une idée ? Merci d'avance , Rasta'
Modifié par Rastahigh (10 Sep 2009 - 14:00)
Salut,

déjà le minimum syndical serait de mettre un fichier index.php (vide ou redirigeant vers une 404) dans les répertoires qui contiennent les mp3. Cela empêchera au moins de les lister...

Ensuite il y a plein de solutions. Je ne vois pas bien ce que tu entends par "url cryptée" mais personnellement j'aurais fait quelque chose comme ça :
* un visiteur a payé pour un mp3 complet
* génération d'un identifiant barbare 3s1dfgsfd62QEFDGofggr5q (par exemple) que je lui attribue. Il est ensuite stocké dans une table et correspond au visiteur et à un mp3 en particulier.
* envoi d'un email qui contient un lien vers un script de mon site et qui contient l'identifiant avec un message du style :
Pour télécharger le mp3 veuillez suivre ce lien :
www.example.com/download.php?id=3s1dfgsfd62QEFDGofggr5q
* le script download.php vérifie que l'identifiant est correct et que le mp3 n'a pas déjà été téléchargé (flag).
* si c'est correct, passage du flag à "téléchargé" et redirection (fonction php header) vers un script downloader.php qui se trouve dans le répertoire des mp3 avec en variable get le numéro de piste.

Un pitit example :

download.php
// Vérification de l'id
// Si OK on flague dans la table à "téléchargé"
// Redirection vers le bon numéro de piste :
header("Location:  http://www.balade-sur-la-clef-de-sol.com/musique/download/Manu3/downloader.php?piste=3");
 
die();


downloader.php
// Récupère l'id de la piste passée 
// Si non défini, remet  1
if (isset($_GET['piste'])) {
	$piste = intval($_GET['piste']);
	if ($piste < 1 || $piste > 3 ) {
		$piste = 1;
	}
} else {
	$piste = 1;
}
	
switch ($piste)
{	case 1 :
		$fichier = 'Cherche Une Partenaire.mp3';
		break;
	
	case 2 :
		$fichier = 'M.mp3';
		break;
	
	case 3 :
		$fichier = 'Red Eyes.mp3';
		break;
	
	default :
		$fichier = 'Cherche Une Partenaire.mp3';
		break;
}

// Extraction des informations grâce à $fichier
$fichier_nom = basename($fichier);
$fichier_taille = filesize($fichier);
$fichier_mime = 'audio/mpeg';
     
// Téléchargement du fichier
header("Content-disposition: attachment; filename=\"$fichier\"");
header("Content-Type: $fichier_mime");
header("Content-Transfer-Encoding: binary");
header("Content-Length: $fichier_taille");
header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0");
header("Expires: 0");
readfile($fichier);

Modifié par Heyoan (11 Sep 2009 - 06:21)
Bonjour;
Je pensais faire a peu près la même chose dans mon cas, seulement cette méthode me pose un problème, en effet si par un coup du sort le téléchargement est interrompu l'utilisateur ne pourra même pas relancer un téléchargement à partir du mail qu'il a reçu.
Une des solutions serait d'obliger les acheteurs à créer un compte mais cette solution ne convient pas dans le cas présent.
Je commence donc à m'orienter vers une solution comparant le nombres d'octets envoyés au client aux nombres d'octets composants mais cela m'a l'air sans issue...
Si quelqu'un aurait une idée à faire partager à ce sujet se serait carrément preneur.
merci, Kera.
Heyoan a écrit :
Salut,

déjà le minimum syndical serait de mettre un fichier index.php (vide ou redirigeant vers une 404) dans les répertoires qui contiennent les mp3. Cela empêchera au moins de les lister...


Sinon un petit

Options -Indexes


dans un .htaccess (ça retournera un header 403)