[RESOLU] Un identifiant et mot de passe à 30 000 000 clients.

Mammouth du PHP | 2278 Messages

06 mars 2014, 12:14

<?PHP
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/passes/index.html"); //il faut mettre entre les "" l'url du fichier à ouvrir chez toi
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "autorise:autor");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$output = curl_exec($ch);
print "$output";
$info = curl_getinfo($ch);
curl_close($ch);
?>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 53 Messages

08 mars 2014, 19:00

Bonjour sirakawa,

Je t'ai envoyé un Message Privé afin que tu puisses faire un test en réel sur FREE.

Réponse à ton message.
Oui c'est bien ce que j'avais fait avec "mon chemin et mon fichier" .
(je n'aurais pas dû faire un copier/coller de ton modèle)
J'avais mis C:/prog_gery\EasyPHP-DevServer-14.1VC9/data/localweb/projects/protegepw_oto/les_autorises/index_autorises.php
J'ai également testé :
http://localhost/projects/protegepw_oto ... orises.php ----> ; conformément à ma configuration.
http://127.0.0.1/projects/protegepw_oto ... orises.php
http://localhost/projects/protegepw_oto ... /index.php en créant un autre fichier index.php (au lieu de index_autorises.php)
C:/prog_gery\EasyPHP-DevServer-14.1VC9/data/localweb/projects/protegepw_oto/les_autorises/index.php en créant un autre fichier index.php
C:/prog_gery\EasyPHP-DevServer-14.1VC9/data/localweb/projects//html/index.php en créant un dossier html et un fichier index.php
et avec des fichiers index.html comme tu me l'as indiqué : sans succès.
Là je fais bêtement ce que tu me proposes.
Mais que doit-il se produire ?
Je ne comprends pas le mécanisme où tu m'emmènes, le but à atteindre.
Je rappelle que reconnais "mon client" grâce à sa réponse fournie dans un formulaire. (if (isset($_POST["envoyer"])))
Partant de là, je dois lui permettre d'accéder à localhost/projects/protegepw_oto/les_autorises/index_autorises.php
SANS qu'il soit obligé de saisir l'identifiant/passwd de htaccess.
Il faut donc dans ce même fichier php, (à titre d'exemple)
a) déverrouiller l'accès à index_autorises.php
b) faire une redirection ou quelque chose d'équivalent ?
ou les 2 à la fois : header('Location: http:// ...... /protegepw_oto/les_autorises/index_autorises.php?$Login&$Pass');

Chose que je ne vois pas dans tes explications, notamment le point b.
Lorsque je mets le petit "couplet CURL" sur l'index dans la page d'accueil, j'ai une erreur 401 (authentification)
mais à part cela il n'y a pas de blocage. Je peux consulter.
Admiration pour ta patience.

Mammouth du PHP | 2278 Messages

08 mars 2014, 20:59

S'il fournit un n"correct, au lieu d'afficher le login et le pass tu mets un formulaire
<form method = 'post' action = 'curler.php'>
 Vous avez tout gagné
<button type = 'submit'>Continuer</button>
</form>
et
curler.php

<?
PHP
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/passes/index.html"); //il faut mettre entre les "" l'url du fichier à ouvrir chez toi
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "FGRCF:FGRCFAUSSI");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$output = curl_exec($ch);
print "$output";
$info = curl_getinfo($ch);
curl_c
lose($ch);
?>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphant du PHP | 53 Messages

15 mars 2014, 10:30

Bonjour sirakawa,
La situation s'est nettement éclaircie, je vois le mécanisme, mais de sérieux problèmes subsistent.

1) La page "protégée" s'ouvre mais tous les liens y figurant ne fonctionnent plus.
Et pour cause, la page active dans ma barre est : "127.0.0.1/projets/curler.php", du print "$output";
il faudrait : "http://127.0.0.1/projects/protegepw_oto ... es.php?SID"
- Si je rectifie les adresses (les chemins) sur la page, ça fonctionne.

2) Il n'y a que cette page qui est "dévoilée" or c'est le dossier "les_autorises" qu'il faudrait rendre
accessible et ce, durant toute la session.

3) curler.php crée systématiquement une nouvelle session détruisant mes variables.
Pas trop grave, je dois pouvoir m'en accommoder.

4) J'ai supprimé le petit bloc <Directory ..... </Directory> dans httpd.conf
Aucun effet constaté. Donc je laisse ainsi.

Conclusions :
1) C'est déjà une avancée importante.
2) Cette technique peut permettre de donner accès à un fichier protégé par htaccess (voire plusieurs) mais
encore faut-il que ce fichier soit "spécialisé" et ne serve que dans cette condition.
Il est spécialisé dans la mesure où les liens de la pages (les chemins) sont prévus, adaptés, pour cette situation.
Ils sont à réadapter par rapport à ceux du fonctionnement normal.
3) Ne convient pas pour le cas que j'envisageais où je voulais accéder au dossier protégé complet.
4) Dommage. Aussi près du but !
Géryko

Eléphant du PHP | 53 Messages

28 mars 2014, 22:58

Bonsoir,
J'ai une solution qui malheureusement ne fonctionne qu'en local, pas sur FREE.

1) Tout ce qui était protégé par htaccess est mis en zone non protégée SAUF :
le fichier index_autorises.php PROTéGé .
2) Ce fichier index_autorises est accessible grâce à CURL (curler.php cité plus haut)
et me fournit la variable $_SESSION['autorise'] = true ; // membre autorisé = oui
3) Le test $_SESSION['autorise'] = true me permet d'accéder au reste des fichiers et dossiers
dans la zone non protégée.
--------------------------------
Et finalement, pour obtenir le même fonctionnement sur FREE, plutôt que d'utiliser CURL
et le fichier "curler.php", je me suis dit que si toutes les conditions étaient réunies
je pouvais autoriser directement l'accès aux pages non protégées, et seulement dans ce cas là.
Le détour par le fichier protégé index_autorises.php est inutile.
(sauf si un lien le désigne pour un accès via htaccess classique avec login et passwd)
Le test $_SESSION['autorise'] = true est maintenu et me permet d'accéder au reste des fichiers
et dossiers dans la zone non protégée.
Inconvénient : Mon cahier des charges n'est plus respecté.
Tous les fichiers et dossiers se trouvent en zone non protégés,
Les plus malins peuvent y accéder facilement.

Merci à sirakawa
Géryko