2011-05-08 2 views
2

Je construis un site dans lequel les utilisateurs peuvent télécharger des photos, et ils peuvent les marquer comme privés, donc personne ne peut les voir.Comment restreindre l'accès à certains types de contenus, avec apache ou .htaccess?

Je sais comment utiliser un système ACL en php, mais tout le monde sera toujours en mesure d'accéder aux photos si elles ont le lien direct vers le fichier image. Par exemple: L'utilisateur 1 veut partager la photo A avec l'utilisateur 2, il lui accorde donc l'accès. L'utilisateur 2 clique avec le bouton droit de la souris sur l'image et copie son URL, par exemple 'http://example.com/private123.jpeg', et l'envoie à l'utilisateur 3. Maintenant, l'utilisateur 3 peut voir l'image qu'il ne devrait pas voir . Pour résumer, j'ai besoin d'un moyen de protéger les images en fonction des permissions des utilisateurs, tout en les chargeant à la vitesse de la lumière (donc exécuter un script php chaque fois qu'une image est demandée, elle est rejetée).

Est-ce possible avec apache? Je pensais que peut-être je pourrais mettre en place un cookie lorsque l'utilisateur se connecte, et laissez apache vérifier d'une manière ou d'une autre. Je ne me soucie pas si les cookies peuvent être truqués, 99,99 +% des utilisateurs ne savent pas comment faire, et les photos ne nécessitent pas plus de sécurité que cela.

Répondre

6

Gardez toutes les images dans leur propre répertoire, et dans ce répertoire, placez un fichier .htaccess avec cela dans ce

RewriteEngine On 
RewriteCond %{HTTP_COOKIE} !^.*name-of-my-cookie.*$ [NC] 
RewriteRule .* /whatever/page [NC,L] 
Questions connexes