8791 sujets

Développement web côté serveur, CMS

Bonjour,

Voilà mon problème. J'ai des pages en php qui ne sont accessibles que si le visiteur est abonné donc identifié. Ces pages appellent des vidéos qui se trouvent dans un dossier non protégé. Je souhaiterais créer un htaccess pour protéger ce dossier et le rendre accessible qu'aux personnes venant d'une page protégée et interdire le téléchargement direct des fichiers.
Est-ce que RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://www\.lapageprotegee\.php/$ [NC]
RewriteRule .(flv)$ - [F]

est une bonne solution ?
Merci.
Non, ce n'est pas une solution fiable.
Le client peut très bien ne pas envoyer de referer ou en envoyer des erronés.
Pour ce genre de choses, tu as meilleur compte à utiliser les sessions.
Tu as plusieurs solutions :

Soit tu verrouille complètement le répertoire et tu accède en http à un fichier php "passerelle" qui vérifiera la session et renverra le fichier.

order allow,deny
deny from all


Soit tu fais ça de manière plus transparente via un peu d'url rewriting en redirigeant toutes les requêtes vers ce répertoire vers ton fichier "passerelle". C'est à peu près identique à la solution précédente, mais ton traitement php devient invisible pour l'internaute qui ne voit qu'un lien direct vers un fichier.

Après si tes fichiers sont gros, je ne sais pas trop ce que cela donne en occupation mémoire pour PHP. A tester, il y a peut être de meilleures solutions.
Alors j'ai testé le fait de passer par un fichier php. Le seul problème, c'est que cela ne bloque pas le téléchargement des fichiers alors que
ReWriteRule \.mp4$ - [F] 

bloque le téléchargement.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !dossier/.*$ [NC]
ReWriteRule \.mp4$ - [F]


fonctionne très bien sauf pour les navigateurs qui n'envoient pas fr referer pour ce type de fichiers