Interaction entre php et Htaccess

Résolu/Fermé
Chrisix Messages postés 60 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 3 décembre 2008 - 1 mars 2008 à 17:22
 Longshot - 16 juin 2008 à 13:57
Bonjour,

Je cherche à sécuriser une partie de mon site qui contient à la fois des pages (php) et des images (JPG) et autres (DOX, XLS...)
Pour protéger correctement les fichiers je mets un .htaccess dans le répertoire et le tour est joué...
Mais si je veux pouvoir y accéder à partir d'une page PHP, est-il possible de donner le USER et PASSWORD à partir de PHP sans pour autant le mettre dans le lien (style http://user:password@monsite.fr/repertoir/fichier.doc) ce qui aurait pour effet de le rendre visible (IE le cacha mais Mozilla l'affiche en clair !)

J'ai tenté de définir $_SERVER['PHP_AUTH_USER']='user' et $_SERVER['PHP_AUTH_PW']='password' mais cela ne fonctionne pas !

Avez-vous une solution ?

(ps pour info, le site est sur free... donc le Htaccess est un peu particulier mais le principe devrait etre le même)


Merci

7 réponses

Tester:
http://www.jalix.org/ressources/internet/php/_manual4/man-php4-fr/function.passthru.html
1
Chrisix Messages postés 60 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 3 décembre 2008 60
1 mars 2008 à 22:08
Hello ??? Quelqu'un pour m'aider ?
0
Chrisix Messages postés 60 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 3 décembre 2008 60
2 mars 2008 à 00:07
Please ! Help !
0
Salut,

Je fais des recherche depuis des heures parce que j'aimerais faire la même chose que toi pour relier deux sites qui utilisent les même login et password.

Je ne sais pas si tu as des pistes mais moi je patauge. Ce que je te propose, c'est que tu me tiennes au courant si tu trouves et je fais de même.

Merci et à bientôt j'espère... avec une solution.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Chrisix Messages postés 60 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 3 décembre 2008 60
4 avril 2008 à 13:03
Hello... voilà où j'en suis :
C'est un faux pb car en fait l'identification type HTaccess est gérée coté client par IE/Mozilla
A chaque page appelée, c'est la client qui ajoute à l'url l'utilisateur+mot de passe codé en MD5
Deux possibilités :
soit mettre le login dans le lien du genre http://user:pasword@www.site.fr mais le pb c'est que l'utilisateur peut le voir, avec mozilla il est même en clair dans la bara d'adresse....
deuxieme option, plus compliquée mais qui marche (elle !) c'est d'avoir un lien sur le premier site vers une page PHP qui ne contient rien... si ce n'est le code pour aller chercher le page du site 2 avec un "FsockOpen"
Quand tu appelles www.site1.fr/page.php le code va chercher les données de la page www.site2.fr/page.htm et renvoie au client. Le principe devrait bien marcher mais je ne l'ai pas encore mis en oeuvre....
J'ai vu qu'avec FsockOpen php peut passer l'adresse avec l'identifiant et l'utilisateur ne peut rien y voir....
Ca devrait parcher aussi pour aller cherche un pdf ou autre... à travers une page php.

Si tu arrives à quelque chose avec ça, merci de me donner le code (ça serait bien bête qu'on cherche tous les deux la même chose !)
Faut chercher coté "proxy" ou "cross scripting" avec ton google préféré....

Merci de me tenir au courant
0
Chrisix Messages postés 60 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 3 décembre 2008 60
9 avril 2008 à 18:38
Voila.... je suis arrivé au bout (enfin !)

fichier proxy.php placé sur //site1.free.fr
<?php
$fp = fsockopen("site2.free.fr", 80, $errno, $errstr, 30);
if (!$fp) {
	echo "$errstr ($errno)<br />\n";
} else {
	$data = "";
	$base64 = base64_encode("user:password");
	fputs($fp, "GET http://site2.free.fr/index.php HTTP/1.0\r\nAuthorization: Basic ".$base64."\r\n\r\n");
	while (!feof($fp) && fgets($fp, 128)!="\r\n") { };
	while (!feof($fp)) {$data.= fgets($fp, 128);}
	echo $data;
	fclose($fp);
}
?>

La page du site2 est retournée... mais attention, si elle faisait référence à des images sur site2, celles-ci ne seront pas accessibles !
Ca marche avec Free... mais je peux pas garantir le résultat ailleurs !
0
Chrisix Messages postés 60 Date d'inscription jeudi 25 novembre 2004 Statut Membre Dernière intervention 3 décembre 2008 60
9 avril 2008 à 19:49
Rho... pourquoi chercher simple quand on peut faire compliqué !

<?php
$fp = fopen("http://user:password@site2.free.fr/index.php" , "r");
if (!$fp) die("<h2>erreur</h2>");
while (!feof($fp) && fgets($fp, 128)!="\r\n") {};
while (!feof($fp)) echo fgets($fp, 4096);
fclose($fp);
?>

Ca marche tout aussi bien !
0