Lecteur audio MP3
Documentation
Recherche d'articles sur le lecteur audio et le thème WordPress

Empêcher le téléchargement de MP3 / Bloquer l'accès direct aux fichiers URL

Parfois, vous souhaitez protéger les fichiers audio contre le téléchargement à partir de votre serveur, alors que vous souhaitez autoriser la lecture des fichiers mp3 dans notre lecteur.

Cela empêchera les gens de demander directement l'URL des fichiers MP3 sur leurs navigateurs et enverra une erreur 403 Forbidden à l'utilisateur qui tente d'accéder directement aux fichiers.

Il existe deux façons différentes d'y parvenir et cela dépend de votre serveur web. Dans la plupart des cas, vous devrez contacter votre hébergeur pour qu'il ajoute les règles dans la configuration du serveur.

Pour les utilisateurs de NGINX : #

Étape 1 - Ouvrir le fichier de configuration de NGINX

$ vi /etc/nginx/sites-available/default

Si vous avez configuré des hôtes virtuels sur votre serveur NGINX, ouvrez son fichier de configuration dans un éditeur de texte.

Étape 2 - Ajoutez les lignes suivantes à l'intérieur du bloc serveur pour désactiver l'accès direct aux fichiers jpg, png et gif.

location ~* \.(mp3|m4a)$ {
   valid_referers example.com www.example.com;
   if ($invalid_referer) {
      return 403;
   }
}

Le bloc de localisation ci-dessus traitera les demandes de fichiers mp3 et m4a. Il vérifiera si le référent est votre domaine, exemple.com ou www.example.com. Si ce n'est pas le cas, NGINX renverra le message de réponse 403 Access Forbidden.

Assurez-vous donc de changer exemple.com et www.example.com pour votre propre nom de domaine.

La fonction de localisation doit se trouver à l'intérieur de votre fonction serveur, comme dans cet exemple :

server {
    location {  ...  }
    location ~* \.(mp3|m4a)$ {
    valid_referers example.com www.example.com;
        if ($invalid_referer) {
            return 403;
        }
    }
...
}

Étape 3 - Redémarrez le serveur NGINX pour appliquer les changements.

$ sudo service nginx restart

Pour l'utilisateur APACHE : #

Étape 1 - Assurez-vous que mod_rewrite est activé. Passez à l'étape 2 s'il est déjà activé.

Ubuntu/Debian

Ouvrez le terminal et exécutez la commande suivante pour activer le mod_rewrite.

$ sudo a2enmod rewrite

Redhat/Fedora/CentOS

Ouvrez le fichier de configuration d'Apache dans un éditeur de texte.

$ sudo vi /etc/apache2/httpd.conf
OR
$ sudo vi /etc/httpd/httpd.conf

Recherchez la ligne suivante.

#LoadModule rewrite_module modules/mod_rewrite.so

Décommentez-la en supprimant # à son début. Si vous ne trouvez pas cette ligne, ajoutez-la !

Recherchez également la balise Directory suivante et changez AllowOverride de None à All.


# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All

Étape 2 - Ouvrir le fichier .htaccess

Ouvrez le fichier .htaccess dans un éditeur de texte. Si votre fichier .htaccess est situé ailleurs qu'à l'emplacement par défaut, remplacez le chemin ci-dessous par le chemin d'accès correct du fichier .htaccess.

$ sudo vi /var/www/html/.htaccess

Étape 3 - Empêcher l'accès direct
Ajoutez les lignes suivantes au fichier .htaccess. Remplacez exemple par votre nom de domaine.

RewriteEngine on 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example [NC] 
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example.*$ [NC] 
RewriteRule \.(mp3|m4a)$ - [F]

Examinons les lignes ci-dessus. La première ligne active le mod_rewrite. Les 2 lignes suivantes vérifient la valeur HTTP_REFERER de la requête. Si elles ne commencent pas par http://www.example.com, c'est-à-dire si la requête a été envoyée directement ou depuis un autre site web, alors Apache vérifiera l'extension du fichier demandé. S'il s'agit d'un fichier .mp3 ou .m4a, Apache répondra par le message 403 Forbidden Access.

Veuillez noter que si vous avez chargé une page Web du site sur votre navigateur et que vous essayez ensuite d'accéder directement au fichier dans un nouvel onglet/fenêtre du navigateur, il se peut que vous puissiez y accéder. En effet, dans ce cas, l'image est chargée directement depuis le cache du navigateur. Néanmoins, elle n'est pas chargée directement depuis le serveur.

Étape 4 - Redémarrer le serveur Apache

$ sudo service apache2 restart
Mis à jour le 23 février 2022
Cet article vous a-t-il été utile ?
betterdocs-category-grid-icon

Pour commencer

Toujours coincé ?
Comment pouvons-nous vous aider ?