Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Serveurs (Apache, IIS,...)
Serveurs (Apache, IIS,...) Forum d'entraide sur les Serveurs : Apache, IIS, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/11/2006, 23h14   #1
Membre à l'essai
 
Inscription : mars 2006
Messages : 67
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 67
Points : 21
Points : 21
Par défaut [Syntaxe] Protocole HTTP Authorization

Bonsoir,

Je ne sais pas si je suis sur le bon forum, mais la FAQ qui parlait du protocole HTTP provenait de la rubrique DL web.
Bref, après avoir cherché sur le web je n'arrive toujours pas à accéder à une page web accessible uniquement par un utilisateur enregistré.
J'utilise quelque chose de similaire à telnet.

Voici ce que je fais :

Connection au site
GET /la_page_voulu.php HTTP/1.0
Host: nom_du_site.free.fr
Authorization: user:password

J'ai aussi essayé avec le user et password en code 64 bits.
La réponse du serveur est toujours la même : le code de la page indiquant que l'on a mal rentré son login ou password.

J'ai cherché sur le RTF et ailleurs. Mais il y a peu d'exemple concret sur ce point.

Je souhaiterai savoir s'il y a quelqu'un qui sait comment faut-il procéder pour les Authorizations ?

Merci d'avance.
moris113 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2006, 10h37   #2
Membre à l'essai
 
Inscription : mars 2006
Messages : 67
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 67
Points : 21
Points : 21
Bonjour,

J'ai bien relu les docs et je ne pense pas avoir fait d'erreur dans la commande HTTP. Néanmoins ça ne marche pas...
Donc je ne dois probablement pas utiliser le bon système d'authentification.
Le site sur lequel j'essaie de me connecter fonctionne (pour le login) de la manière suivante :
le login et le mot de passe sont stockés dans une base
Lorsque l'on veut se connecter il faut remplir les champs login et password puis clicker sur ok
Le serveur compare alors le login et le password donnés à ceux existant dans la base.

Bref rien de fou !!

J'ai essayé avec la méthode post mais je dois mal m'y prendre car je n'accède pas à la page voulu.

Si quelqu'un a une idée...
moris113 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2006, 11h35   #3
Membre Expert
 
Avatar de Hephaistos007
 
Inscription : décembre 2004
Messages : 1 304
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 1 304
Points : 1 387
Points : 1 387
Citation:
Envoyé par moris113
Voici ce que je fais :
Conection au site
GET /la_page_voulu.php HTTP/1.0
Host: nom_du_site.free.fr
Authorization: user:password
Outre le fait que ta requête ne soit pas tout à fais exacte (voir http://fr.wikipedia.org/wiki/HTTP_Authentification), ce type de requête ne fonctionne qu'avec une protection des ressources assurée par le serveur lui-même, type .htaccess.
D'après ce que je crois comprendre, ton problème est tout autre puisque tu assures la protection des ressources à travers une page PHP. Ta requête doit être du style :
Code :
1
2
3
4
POST /authentification.php HTTP/1.0

Content-Length: 50
login=jacques&passwd=chirac&goto=la_page_voulu.php
A toi de créer/modifier le script authentification.php pour "forger" une réponse HTTP de redirection (vers la page cible voulue) en cas de succès, ou de forger une réponse HTTP 401 en cas d'échec.
__________________
Mieux vaut mobiliser son intelligence sur des conneries que sa connerie sur des choses intelligentes. [SHADOKS]

Cours sur la programmation pour SmartPhones Android (Requière la lecture du cours sur la programmation Java)
Hephaistos007 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2006, 12h15   #4
Membre à l'essai
 
Inscription : mars 2006
Messages : 67
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 67
Points : 21
Points : 21
Bonjour,

Effectivement le controle est fait par une page php.
J'ai fait ce que tu as marqué et la réponse du serveur est : bad request.

J'ai essaié :
Code :
1
2
3
4
POST /authentification.php HTTP/1.0

Content-Length: 50
login=jacques&passwd=chirac&goto=la_page_voulu.php
Code :
1
2
3
4
POST /authentification.php HTTP/1.0
Content-Length: 50

login=jacques&passwd=chirac&goto=la_page_voulu.php
Code :
1
2
3
4
POST /authentification.php HTTP/1.0
Content-Length: 500

login=jacques&passwd=chirac&goto=la_page_voulu.php
et la seule ou il n'y a pas de retour d'erreur :
Code :
1
2
3
4
5
POST /authentification.php HTTP/1.0
HOST: monstie.free.fr
Content-Length: 50

login=jacques&passwd=chirac&goto=la_page_voulu.php
Mais la réponse est le code de la page authentification.php

Je dois vraiment mal m'y prend...ou plutôt j'y comprends rien!

J'ai aussi essayé de remplir des champs sur une page php, qui remplie à son tour une db, et il y a la même réponse : bad request.

Je suis un peu perdu.
moris113 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/11/2006, 14h16   #5
Membre Expert
 
Avatar de Hephaistos007
 
Inscription : décembre 2004
Messages : 1 304
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 1 304
Points : 1 387
Points : 1 387
Le message bad request indique que la requête est mal formée (des espaces en trop, fautes de syntaxe, ...)

Le code correct doit être :
Code :
1
2
3
4
5
6
POST /authentification.php HTTP/1.0
HOST: monstie.free.fr
Content-Length: 50

login=jacques&passwd=chirac&goto=la_page_voulu.php
En retour tu recois une réponse du serveur contenant le code HTML issu de l'interprétation de la page authentification.php. C'est normal.
Il faut ensuite faire interpréter cette réponse par ton navigateur.

Cherche sur le web des librairie PHP qui permettent de forger facilement des requête et de traiter les réponses. Ca sert à rien de réinventer la roue.
__________________
Mieux vaut mobiliser son intelligence sur des conneries que sa connerie sur des choses intelligentes. [SHADOKS]

Cours sur la programmation pour SmartPhones Android (Requière la lecture du cours sur la programmation Java)
Hephaistos007 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2006, 15h14   #6
Membre à l'essai
 
Inscription : mars 2006
Messages : 67
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 67
Points : 21
Points : 21
j'ai trouvé la sol!!!!!

après connection :

GET /ma-page.php?variable1=AAAA&variable2=BBBBBB HTTP/1.0
HOST: monsite.free.fr

et pour le php :

page du forumlaire
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
session_start()
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>GPRS tester</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>

<center><b>GPRS Tester</b></center>

<?php
require ("../prog/params.php");
$ok=connect();
if ($ok=="1")
{
$pass=gprs_psw;
$pseudo=gprs_login;

$result=mysql_query("SELECT * FROM ice_clients WHERE client_login = '$pseudo' ") or print mysql_error();
$ligne=mysql_fetch_row($result);
if (($pass==$ligne[5])and($pass!=''))
{
print "Welcome on your account "; 
}
else 
{ 
print "Error on login or password !";
}
}
echo "<form name='form1' method='get' action=./modifOK_get.php>"; 
echo "<p>Nom :<input name='nom' type='text' id='nom'></p>";
echo "<p><input name='valider' type='submit' id='valider' value='Valider'></p>";
echo "</form>";

$ok=disconnect();
?>
</body>
</html>
page de remplissage de la db
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
session_start();
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ModifOK</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>			  
<?php 
require ("../prog/params.php");

$ok=connect();

$pseudo=gprs_login; 
$nom=$_GET['nom'];
$modif=0;

if ($ok==1)
{ 
$result=mysql_query("SELECT * FROM ice_clients WHERE client_login = '$pseudo' ") or print mysql_error(); 
$ligne=mysql_fetch_row($result);

if (($nom!='')and(gettype($nom)=='string'))
{
$strSQL = mysql_query("UPDATE ice_clients SET `client_nom` = '$nom' WHERE `client_login` = '$pseudo'") or print mysql_error();
echo"Name has been modified";
$modif=1;
} 

if ($modif==0)
{
echo"Nothing has been modified on your account!";
}

}
else
{
echo"Data base connection error !!!";
}
$ok=disconnect(); 
?>
<p><a href="database.php">See account</a></p>
</body>
</html>
Bonne journée à tous
moris113 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h28.


 
 
 
 
Partenaires

Hébergement Web