[Résolu] Automatiser le PHP_AUTH_USER pour authentification htaccess

Automatiser le PHP_AUTH_USER pour authentification htaccess [Résolu] - PHP - Programmation

Marsh Posté le 19-09-2007 à 16:20:48    

Bonjour,
 
Voici mon problème : sur mon site, les utilisateurs se connectent via login/mot de passe (base de users mysql) et je gère tout le reste avec des sessions PHP.
 
Il s'agit d'un petit site qui permet d'afficher des albums de photos.
 
Je voudrais donc protéger les dossiers qui contiennent les photos pour empêcher un accès non autorisé, je souhaite donc naturellement utiliser un .htaccess.
 
Mais comme mes utilisateurs sont déjà authentifiés par PHP, je ne veux pas leur redemander de s'authentifier en HTTP.
 
Comment faire pour automatiquement paramétrer le PHP_AUTH_USER et le  PHP_AUTH_PWD pour passer l'authentification automatiquement pour mes users connectés ?
 
Merci !


Message édité par vilcocoy le 27-09-2007 à 21:26:11
Reply

Marsh Posté le 19-09-2007 à 16:20:48   

Reply

Marsh Posté le 26-09-2007 à 15:58:35    

Personne n'a d'idée là dessus ? :??:

Reply

Marsh Posté le 26-09-2007 à 16:51:35    

C'est ton idée qui n'est pas bonne là.
 
Je te conseillerais plutot de protéger ton répertoire de photos avec un .htaccess contenent :
deny from all
 
Ensuite tu utilise un script php pour l'affichage de tes images.
Celui-ci recoit en paramètre l'image que l'on souhaite afficher, vérifie les droits, et lit l'image et l'envoit si tout est ok.


---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 26-09-2007 à 17:24:05    

Ou au pire si tu tiens vraiment à gérer les droits au niveau répertoire, tu fais une authentification http + .htaccess et si besoin au niveau php tu as les 2 variables que tu cites (si sous apache) ;)

Reply

Marsh Posté le 26-09-2007 à 22:07:32    

Merci pour vos conseils, je regarde ça...

Reply

Marsh Posté le 26-09-2007 à 22:17:33    

Dwogsi, ton système me semble sympa, mais je n'arrive pas à l'appliquer.
 
J'ai placé un .htaccess dans mon dossier, mais maintenant mes images ne s'affichent plus dans mes scripts PHP, du type :
 

echo "<img src=\"monDossierProtegeAvecHTAccess\sousdossier\fichier.jpg\" alt=\"blabla\">";


 
Comment ferais-tu pour que le .htaccess autorise la lecture par mon script PHP, ou comme tu dis pour que le script vérifie les droits ?


Message édité par vilcocoy le 26-09-2007 à 22:18:43
Reply

Marsh Posté le 27-09-2007 à 01:26:31    

Ralala, encore une fois il faut comprendre comment ça marche avant de faire un truc bancal et crier au secours.
 
Vu que tu m'as l'air plus débrouillard que bien d'autres quelques explications:
- tu tapes une adresse dans ton navigateur
- tu accèdes à un serveur HTTP (web)
- tu lui demandes ce que tu as tapé en adresse (derrière le nom de domaine)
- il te sert la page ET ce qui pourrait être inclu (images, fichier liés genre css, js...)
- si c'est un langage de script, le serveur demande l'interprétation avant de te servir le résultat qui doit être une ressources compréhensible par le navigateur et identifié en tant que tel (type mime)
 
Donc ton .htaccess agit au niveau du serveur HTTP auquel tu dis de ne pas autoriser l'accès à ces ressources! Tu peux y accéder via le système de fichier néanmoins puisque ça passe pas par le serveur HTTP (ie php dans notre cas)
 
 
C'est donc normal que tu puisses pas accéder à tes images si elles sont dans un dossier ou sous dossier qui est interdit d'accès.
 
Faudrait que tu mettes tes ressources que tu veux pas bloquer dans un dossier pas bloqué ;)

Reply

Marsh Posté le 27-09-2007 à 09:09:01    

Moi je disais quelque chose comme ça :

Code :
  1. echo '<img src="mes-script-ou-ya-pas-de-htaccess/getImage.php?img=fichier.jpg" alt="blabla" />';


Et ensuite getImage.php :

Code :
  1. <?php
  2. // Vérification des droits de l'utilisateur/visiteur
  3.  
  4. // Si tout est ok
  5. // Ya plus qu'a faire quelque chose comme ça :
  6. header('Content-Type: image/jpg');
  7. echo file_get_contents('mon-rep-avec-htaccess/'.$_GET['img']);
  8. ?>

(Script à améliorer)

 

Comme ça ton .htacces protége les accès directes aux images et ton script les envoit seuleument si l'utilisateur/visiteur est autorisé à les visualiser.


Message édité par dwogsi le 28-09-2007 à 12:37:55

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Marsh Posté le 27-09-2007 à 13:16:37    

la question est de savoir si on veut vraiment (et doit surtout) protéger les  images :??:
 
Parce que charger le serveur pour ça, c'est la même avec les css après, bref beaucoup de ressource pour pas grand chose.  
 
Mais c'est un choix à faire en fonction de ce que l'on veut, moi juste pour ce qui doit être servi comme ça je ferais un répertoire libre d'accès à côté de l'accès restreint.

Reply

Marsh Posté le 27-09-2007 à 13:33:05    

Ok, merci pour vos réponses.
 
Dwogsi, je vais essayer de mettre en pratique ton exemple, qui est astucieux.
 
Leflos5, pour répondre à ton interrogation, ma démarche a pour but de cloisonner complètement mon site, je ne veux donc pas que l'on puisse accéder à la moindre ressource sans être authentifié.
 
Mon petit site ne sera pas hébergé chez un FAI, mais sur un serveur perso, dédié à ça, avec une très faible audience, donc je n'ai pas d'inquiétude quant aux perfs de la machine.

Reply

Marsh Posté le 27-09-2007 à 13:33:05   

Reply

Marsh Posté le 27-09-2007 à 21:25:16    

SUPER !!
 
Ca marche !
 
Merci beaucoup.

Reply

Marsh Posté le 28-09-2007 à 01:57:42    

fais bien attention au type de donnée que tu envois, te fie pas forcément aux extensions mais aussi aux résultats des fonctions te permettant d'évaluer tel ou tel type, en l'occurence surtout pour les images :)

Reply

Marsh Posté le 28-09-2007 à 12:17:51    

Tu veux dire vérifier qu'il s'agit bien d'un fichier du type correspondant à l'extension avant de l'envoyer avec un type MIME ?

Reply

Marsh Posté le 28-09-2007 à 14:21:59    

C'est ça :) Même si c'est pour ton usage perso, si tu veux verrouiller autant faire les choses proprement.
 
Tu peux très bien avoir du php, un éxécutable, bref tout sauf une image dans un .jpg

Reply

Marsh Posté le 01-10-2007 à 10:01:29    

OK, je vais faire ça, merci pour le conseil.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed