8791 sujets

Développement web côté serveur, CMS

Bonjour, j'ai un petit souci qui doit être très con à résoudre pour des pros, mais pour le moment, je ne trouve de réponses nulle part.
J'ai un dewplayer (merci d'ailleurs, c'était exactement ce qu'il me fallait Smiley cligne ) qui passe un répertoire d'une vingtaine de musiques en aléatoire. Le problème est que du point de vue des artistes et des prods, je cherche à en empêcher le téléchargement direct.
Pour le moment j'utilise cette page de test pour voir comment les différents players réagissent:

<body>
<object type="application/x-shockwave-flash" data="dewplayer-multi.swf?mp3=test.mp3&amp;autostart=1&amp;showtime=1&amp;randomplay=1&amp;volume=80" width="240" height="20">
<param name="wmode" value="transparent" />
<param name="movie" value="dewplayer-multi.swf?mp3=test.mp3&amp;autostart=1&amp;showtime=1&amp;randomplay=1&amp;volume=80" />
</object>
<object type="audio/mpeg" data="test.mp3" width="200" height="20">
<param name="filename" value="test.mp3" />
<param name="src" value="test.mp3" />
<param name="autostart" value="false" />
<p><a href="test.mp3">Écouter le son</a></p>
</object>
</body>


Dans mon .htaccess, à la base du dossier test, j'ai ça:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_REFERER} !/test/test\.php$ [NC]
RewriteCond %{HTTP_REFERER} !/test/dewplayer\-multi\.swf [NC]
RewriteRule .*\.(mp3)$ - [F,NC]


J'ai essayé avec ou sans \ devant le tiret (parce que je ne suis pas sûr qu'il soit nécessaire), avec ou sans "/test/" dans tous les cas, mes mp3 ne sont pas accessibles, le lecteur QT peut y accéder mais le Dewplayer n'y a pas accès au mp3. C'est dommage, c'est lui que je voudrais utiliser... Smiley lol

Je viens de me taper la doc Apache du mod_rewrite, et tout débutant que je suis, j'imagine que ça vient de "HTTP_REFERER" puisque le dewplayer n'est pas directement indiqué dans l'URL ed la page... mais je ne sais pas ce que veulent dire les autres variables disponibles :

a écrit :
En-têtes HTTP :

HTTP_USER_AGENT
HTTP_REFERER
HTTP_COOKIE
HTTP_FORWARDED
HTTP_HOST
HTTP_PROXY_CONNECTION
HTTP_ACCEPT
connexion & requête :

REMOTE_ADDR
REMOTE_HOST
REMOTE_USER
REMOTE_IDENT
REQUEST_METHOD
SCRIPT_FILENAME
PATH_INFO
QUERY_STRING
AUTH_TYPE
Variables internes du serveur :

DOCUMENT_ROOT
SERVER_ADMIN
SERVER_NAME
SERVER_PORT
SERVER_PROTOCOL
SERVER_SOFTWARE
SERVER_VERSION
Variables système :

TIME_YEAR
TIME_MON
TIME_DAY
TIME_HOUR
TIME_MIN
TIME_SEC
TIME_WDAY
TIME
Variables spéciales :

API_VERSION
THE_REQUEST
REQUEST_URI
REQUEST_FILENAME
IS_SUBREQ


Si quelqu'un a une idée de la méthode à adopter...
Merci beaucoup Smiley ravi

PS: Je suis chez OVH hébergement Start1m pour ma page de test mais je compte prendre plus gros si je trouve une solution Smiley cligne
Modifié par Pochtroi (26 Mar 2008 - 18:38)
Administrateur
Piste à explorer :

SetEnvIfNoCase Referer "^http://www.tonsite.com.*" locally_linked=1
<FilesMatch "\.(mp3)$">
  Order Allow,Deny
  Allow from env=locally_linked
</FilesMatch>
Merci de ta réponse... j'ai essayé comme ça et avec qques autres écritures (je n'ai jamais vu de guillemets dans les .htaccess... en partie ce qui me trouble avec ce fichier Smiley cligne ). Ca marche exactement pareil. Le QT est le seul à avoir accès au fichier... Smiley confus
Déjà, j'ai modifié en tapant SetEnvIfNoCase Referer ^http://reparation-accordeons.com/test/.+ locally_linked=1 Sinon, on pouvait acceder au fichier en indiquant comme adresse http://reparation-accordeons.com/test/ Smiley cligne Me v'la content de moi mais ça ne change rien à mon problème principal. Smiley sweatdrop Smiley ohwell
Modifié par Pochtroi (26 Mar 2008 - 19:53)
Bonjour, je rouvre le sujet car j'ai une petit question. J'utilise moi aussi le dewplayer pour jouer de la musique sur un site ; un seul morceau à la fois
J'aimerais pouvoir protéger mes fichiers mp3 du téléchargement soit par remaniement d'URL soit par configuration de Apache. Le problème est que je suis débutant dans la configuration de ce serveur.

Le code ci dessous ne fonctionne pas, le player m'affiche "no mp3 file". Je fias mes tests en local pour le moment.
RewriteEngine on
RewriteRule ^audio/play/([a-z_]+)$ dewplayer.swf?=http://localhost/$1.mp3


La réécriture complete de l'URL n'est pas si importante, c'est surtout pour empecher le téléchargement du mp3 par autre chose que le player.

Merci
Ah et je précise que la ligne ne fonctionne toujours pas quand je précise correctement le nom du parametre Smiley lol (...)?son=(...) etc.
Bonjour,
J'espère que qq à trouver une solution à ce problème que je n'arrive pas moi même à résoudre Smiley decu

J'utilise moi même une configuration du type :
SetEnvIfNoCase Referer "^http://www.tonsite.com.*" locally_linked=1
<FilesMatch "\.(mp3)$">
Order Allow,Deny
Allow from env=locally_linked
</FilesMatch>

au niveau de mon apache, le probleme est que lors du click sur le bouton play, ça ne marche pas bien évidement et que je trouve un access denied sur mon error.log:

[Mon Apr 20 04:42:25 2009] Smiley error [client 41.*.*.*] client denied by server configuration: /home/siteweb/public_html/www.tonsite.com/mp3/monfichier.mp3

Une recherche plus aprofondi au niveau des logs indique que lors du clique sur le bouton play, le dewplayer (comme n'importe quel animation flash aussi) n'indique pas de Refereret donc se retrouve bloqué par cette restriction, alors qu'un lien de telechargement sur le meme site fonctionne.

Ce qu'il faudrait donc c'est une modification au niveau du code source du dewplayer pour qu'il lise le site dans lequel il a été ouvert ou plus precisement la page, et qu'il l'indique comme referer lors du loading du fichier mp3 ... ou alors une autre solution serait qu'il modifie la signature (BrowserAgent) en spécifiant une du stype dewplayer V 1.0, à la place d'utiliser la signature du navigateur (Firefox 3.0.8 etc ...) ce qui permettrait d'enlever la restriction grace à cette signature au niveau d'apache.

comme malheureusement les source ne sont pas dispo, (licence nonopensource donc ça pue), je me vois dans l'obligation d'aller voir ailleurs un autre player mp3 Smiley decu
SinuS a écrit :
comme malheureusement les source ne sont pas dispo, (licence nonopensource donc ça pue), je me vois dans l'obligation d'aller voir ailleurs un autre player mp3 Smiley decu
C'est dew qui va être tout triste... Smiley sweatdrop

C'est vrai quoi ! Il met à disposition des lecteurs flash sous licence Creative Commons mais la moindre des choses serait de fournir le code ! Smiley fache Smiley langue