par
Ripat » 04 sept. 2006, 10:03
En matière de protection d'images il n'y a effectivement pas de protection absolue. Mais on peut, par différentes techniques, arriver à un certain niveau de protection contre un utilisateur moyen.
Il faut travailler sur la variable serveur HTTP_REFERER.
Imagine que tes pages xxx.php ou yyy.html se trouvent dans le répertoire
/test/ et tes images dans
/test/images/
A mettre dans un .htaccess dans le répertoire
/test/images/ :
Code : Tout sélectionner
# blocage sélectif de toutes les pages *.html et *.php sauf si page_ok existe
# Allow from env=page_ok autorise l'accès si la variable page_ok existe
SetEnvIf Referer "^http://ton-site/test/.*\.(php|html?)$" page_ok
<FilesMatch \.(?i:gif|jpe?g|png)$>
Order Deny,Allow
Deny from all
Allow from env=page_ok
</FilesMatch>
Seules les images demandées depuis des pages *.php, *.htm ou *.html seront affichées. Si elles sont demandées directement avec l'URI directe
http://ton-site/test/images/mon_image.gif elles seront bloquées.
Remarques:
- Le HTTP_REFERER envoyé dans un header par le navigateur peut facilement être modifié par des "plug-ins", modules, extensions ou autres Widgets. Ceci ne constitue donc pas une protection absolue. C'est juste une dissuasion de base. Un peu comme si la porte d'entrée de ta maison était blindée et verrouillée mais la porte de derrière est restée ouverte!
- Nécessite le module Apache env_module
En matière de protection d'images il n'y a effectivement pas de protection absolue. Mais on peut, par différentes techniques, arriver à un certain niveau de protection contre un utilisateur moyen.
Il faut travailler sur la variable serveur HTTP_REFERER.
Imagine que tes pages xxx.php ou yyy.html se trouvent dans le répertoire [b]/test/[/b] et tes images dans [b]/test/images/[/b]
A mettre dans un .htaccess dans le répertoire [b]/test/images/[/b] :
[code]# blocage sélectif de toutes les pages *.html et *.php sauf si page_ok existe
# Allow from env=page_ok autorise l'accès si la variable page_ok existe
SetEnvIf Referer "^http://ton-site/test/.*\.(php|html?)$" page_ok
<FilesMatch \.(?i:gif|jpe?g|png)$>
Order Deny,Allow
Deny from all
Allow from env=page_ok
</FilesMatch>
[/code]
Seules les images demandées depuis des pages *.php, *.htm ou *.html seront affichées. Si elles sont demandées directement avec l'URI directe [b]http://ton-site/test/images/mon_image.gif[/b] elles seront bloquées.
[u]Remarques:[/u]
[list]
[*]Le HTTP_REFERER envoyé dans un header par le navigateur peut facilement être modifié par des "plug-ins", modules, extensions ou autres Widgets. Ceci ne constitue donc pas une protection absolue. C'est juste une dissuasion de base. Un peu comme si la porte d'entrée de ta maison était blindée et verrouillée mais la porte de derrière est restée ouverte!
[*]Nécessite le module Apache env_module[/list]