Bonjour,
Je pense que je ne suis pas le seule à voudrais savoir comment sécuriser une url. Je m'explique, j'ai presque terminé de développer ma section Musique sur mon site web. J'ai réussit à caché la balise audio du code source. Le javascript me génère les balise audio dynamiquement. Il me génère une url comme exemple ceci :
http://localhost:8888/files/audios/4/4.mp3
Problème est que utilisateur peut copier cette url dans son navigateur et le télécharger.
Mon résultat que je voudrait est le suivant :
http://localhost:8888/files/audios/4/4.mp3?182743647346
Le paramètre après le nom du fichier doit être unique et expire après une utilisations.
Par exemple généré un token :
$token = md5(time() .' - '.uniqid());
Si le token est valide il peut afficher ce lien si non il va avoir un Forbeden qui s'affiche.
Bref c'est de sécuriser au mieux cette url. Vue que on ne peut pas la masqué.
Merci de votre aide en avance.
"qui expire après une utilisation", sans bdd (ou au pire un fichier) pour stocker les id déja utilisées je vois pas bien
Pour ce qui est d'une id protégé a passer en get, c'est pas bien compliquer : tu peux générer un id aléatoire de 6 caractères, par exemple, le passer dans un salt + hash, et garder les 6 premiers caractères de ce hash que tu concatène aux 6 de l'ID. Ca te fait un pass de 12 caractères au total a passer en get.
Pour valider l'ID, tu recup les 6 premiers caracteres du get, ajoute le salt, hash, et compare les 6 premiers caractères du hash aux 6 dernier du pass.
Note qu'en utilisant ce type de script, tu peux creer un lien valide pour un temps donné, si tu utilises le timestamp comme ID (lorsque tu recoit une requete avec ce lien, il faut récup' le timestamp du lien (10 chiffres, je crois), verifier que le timestamp actuel est dans la marge que tu permets (dans l'heure suivant le generation du premier timestamp, par exemple), et enfin confirmer qu'il sagit d'un vrai en passant le timestamp recu dans ton salt + hash).
Petit ajout : c'est impossible de cacher un fichier qui doit être montré à un moment ou à un autre sur internet. La base d'internet est le téléchargement. Comment marche l'affichage d'une page web ? L'utilisateur télécharge le code source puis le "compile" et l'affiche via un navigateur. Si tu bloques le fichier à une écoute, le fichier sera quand même téléchargé à un moment ou à un autre pour que le visiteur l'entende.
Au pire tu pourra bloquer les utilisateur standards (qui ne s'y connaissent pas) mais pas plus. Je prend par exemple snachat (un service permettant d'envoyer des messages s'auto détruisant au bout de quelques secondes); eh bien il à été hacké en 1 semaine.
Il faudra que tu nous donnes l'adresse de ton site pour que l'on te dise ce que l'on en pense :)
@darkhexagon : Je vais vous montrer par ce que je veux sécuriser l'url.
Je te donne l'adresse du site web en version teste. Voici une exemple d'une tune.
Fait afficher l'inspecteur de l'élément sur le lecteur Tu va voir ce-ci :
<div class="mmplayer mmplayer-stopped">
<audio preload="auto">
<source src=src="http://pdr.musicalitymaker.com/track/dreamer-hunter-3"></source>
</audio>
</div>
Mon pote darkhexagon (oui, parce que tu es mon pote, darkhexagon, sache-le) a raison. Tu peux securiser l'url que tu donnes autant que possible, faire un lien avec une date de peremption, ou ce que tu veux, si j'ouvre l'inspecteur et que je recupere l'url directe de ton fichier, rien ne m'empeche plus tard de la mettre dans mon browser. et donc d'y a voir acces sans passer par les controles php que tu peux mettre en place.
Il y a sans doute des solutions, mais rien qui passe par une simple protection en php.
Il faudrait que je utilise le php et du .httacess peut-être?
C'est plate de ce faire volé de la musique que je compose.
J'ai jamais eu a faire un truc comme ca mais une solution que je pourrais imaginer est la suivante:
De cette manière tu ne risques pas de te faire "voler" ton fichier puisqu'il n'existe que pendant un certain temps...
Il y a peut-être d'autres solutions plus académiques, mais rien qui ne me vienne a l'esprit ...
J'ai pas encore un système d'achat pour l'instant, Juste d'écouter ma musique.
Ps Juste comme ça comment trouvez-vous ma musique? ;)
Je sais pas encore ! (je viens de mettre ma gamine au pieu et ma femme est devant la télé) ... je te dis dès que j'ai écouté !
Le Flash, ca te tente ? parce qu'il semble bien que ce soit la seule solution a ton problème
Je pense que la seul solution est de passé par les .htaccess, je ne sais pas si ce sujet va répondre à ton attente mais voilà ce que j'ai pu trouver sur Internet : http://fr.openclassrooms.com/informatique/cours/concevez-votre-site-web-avec-php-et-mysql/proteger-un-dossier-avec-un-htaccess
Toute ta musique dans un dossier sera je pense protégé, mais je ne sais pas si tu pourras l'accéder pour que les gens l'écoute.
J'espère t'avoir aider.
Cordialement.
Je pense vraiment qu'une vraie solution est de mettre ton oeuvre sous License. Je te conseille de regarder les sites suivants :
http://www.depotnumerique.com/
http://www.copyrightdepot.com/
Ou si tu veux partager tes œuvres pour que l'on puisse s'en servir la License Creative Commons qui est celle que j'utilise dans mes articles de blogs (oui je fais de la pub xD).
Bonjour un an après désolé du retard ,j'ai crée un service de dépot temporaire de fichier audio si cela intéresse certain ou même la personne ayant ouvert ce poste; j'explique : vous envoyer votre fichier audio ,un lien et crée ,avec un token pour le fichier audio et un hash pour l'url, le tout envoyé en base de donnée; vous avez à partager le lien avec la personne qui veut entendre votre projet ,une fois le projet écouté le tout et éffacé dans la foulé; voici le site en question : https://playlink.olympe.in/
Vous pouvez just mettre le nom du video et par exemple dans php vous mettez
$Video = $UrlName.".mp3"
Bonsoir.
@Instru Mental: Votre proposition n'est pas adapté à sa demande.
@Oussama Baoui: Je ne vois pas en quoi ça répond à sa demande, une variable est interprété en Html pour pouvoir être traîté par le navigateur, il voulait masquer l'URL d'accès au fichier et votre proposition ne fait en aucun cas ce qu'il demandait.
Il vous que les utilisateurs ne peuvent pas telecharger le fichier
Et en quoi votre proposition empêche le téléchargement du fichier ?