Salut tout le monde,
Je suis entraine de développer un flux de musique sur mon site web. Je voudrais protégé ma musique pour évité que les gens copie l'adresse du fichier sources directement sur leur navigateur et le télécharger.
Je sais que plusieurs d'entre vous vous aller me dire d'utiliser de l'ajax pour ne pas voir ces balise :
<audio preload="auto" controls>
<source src="/files/audio/1/1.wav" />
<source src="/files/audio/1/1.mp3" />
<source src="/files/audio/1/1.ogg" />
</audio>
Si je partage ce lien exemple.com/track/teste-1 la vue ne sera pas appeler une vue en ajax et il vont voire les balise audio en brute.
Je veux un flux de musique transparent et de déjoué les personnes malhonnêtes. Je voudrais avoir quelque pistes sur comment je peut réglé ce petit problème. Si vous regarder le code source d'une tune hébergé sur SoundCloud on ne voit pas la balise audio et ni les lien des fichier dans leur code source.
Merci de votre aide en avance.
Bonjour ,
j'ai regardé un peu leur système, c'est un peu farfelue mais on peut accéder à la source si on fouille...
Exemple :
https://ec-media.soundcloud.com/1us3P1sEf3ti.128.mp3?ff61182e3c2ecefa438cd02102d0e385713f0c1faf[tronqué exprès]c2b995b554eb9ac1f4bc6e2450a1caf411fc6416294a&AWSAccessKeyId=AKIAJ4IAZE5EOI7PA7VQ&Expires=1388270384&Signature=hmtwzwKTJT4wNISWNUX7ACiZNVk%3D
certes on ne le voit pas facilement mais une personne malhonnête peut le récupérer... (évidemment je n'ai pas téléchargé le mp3 mais cela est possible)
Bonjour.
Il est malheureusement actuellement impossible de complètement protéger un fichier média contre le téléchargement.
Que ce soit un fichier audio ou un fichier vidéo.
Si tu veux protéger un maximum, il te faut passer par un lecteur flash ou autre qui traitera lui même les fichiers à lire, car pour les balises audio et vidéos, c'est le navigateur qui les traites et il a besoin du chemin des fichiers qui sera donc visible par les utilisateurs de ton site.
Bonjour Lartak , oui en effet, ce que je voulais dire par cet exemple, c'est que ce genre de média traité par le navigateur est toujours accessible quelque part. Ce que le site cité a fait, c'est simplement tenter au mieux de le noyer dans le code et essayer de la protéger par des jetons etc..
Comment je peut mettre un système qui ressemble à sa. Si je fait un upload es un fichier sur un FTP et que je le met sur un sous domaine exemple médias.exemple.com
Ça changerait quoi que tu aies tes fichiers médias dans un sous-domaine ?
Ce n'est pas pour autant qu'ils seront plus protégés.
Je veux uploader de la musique sur mon site web et qui veux dire musique veut dire des fichier lourd. Un de mes amis avait dit de faire le téléchargement avec un ftp. Pour la protection avec des jetons de sécurités que je créer dans la session de l'utilisateur qui va consulté le site web.
Bonsoir.
Ce n'est pas avec un FTP, mais par protocole FTP.
Par contre, je ne vois vraiment pas comment tu comptes faire, car si tu les upload manuellement par FTP, tu n'auras pas d’interaction directe pour la sauvegarde en base de données.
Comment je peut upload le fichier, mais celui-ci il faut que je enregistré l'url dans la basse de donnée. Php à une limite pour bouger des fichier quand je veux bouger le fichier.
Je pense que je vais faire move_uploaded_file classique
J'ai caché la vrais adresse url du fichier par une autre adresse et cette adresse va me retourner l'url du fichier :
L'adresse
http://localhost:8888/track/d/1/174b0d86c76dce1fed1fa4f6247917f9
L'adresse source :
file/exemple/1/1.mp3
dans la session de l'utilisateur j'ai généré un token :
Génération d'un token :
if(!isset($token)){
$token = md5(time() + rand());
$this->Session->write('crsftoken',$token);
} else {
$this->Session->read('crsftoken');
}
array(
'crsftoken' => '409b07316e8ed8d6d0704925ec638400'
)
Celui-ci se recharge à chaque changement de page.
dans une fonction de mon controller je vérifie si le token en session et l'adresse son pareille.
public function d($id,$token){
if ($token != $this->Session->read('crsftoken')) {
throw new NotFoundException("Désolé, il y a pas de musique à cette ID.");
}
$file = $this->Track->find('first',array(
'conditions' => array('Track.id'=>$id)
));
$url = '/files/audio/'.$id.DS.$id.'.mp3';
}
Si oui
Je faite une petite reqête pour trouver l'idée.
je retourne l'url du fichier source : à ma vue Show.
si non je bloque l'utilisateur.
Je pense que c'est bien partie mais le problème est comment je peut envoyer l'url à ma vue Show pour que celui la récupère.