IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Serveurs (Apache, IIS,...) Discussion :

[Syntaxe] Protocole HTTP Authorization


Sujet :

Serveurs (Apache, IIS,...)

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 67
    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.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 67
    Par défaut
    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...

  3. #3
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 67
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    POST /authentification.php HTTP/1.0
    
    Content-Length: 50
    login=jacques&passwd=chirac&goto=la_page_voulu.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    POST /authentification.php HTTP/1.0
    Content-Length: 50
    
    login=jacques&passwd=chirac&goto=la_page_voulu.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  5. #5
    Membre Expert
    Avatar de Hephaistos007
    Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2004
    Messages
    2 493
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 493
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.
    Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes --- devise SHADOKS

    Kit de survie Android : mon guide pour apprendre à programmer sur Android, mon tutoriel sur les web services et enfin l'outil en ligne pour vous faire gagner du temps - N'oubliez pas de consulter la FAQ Android

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 67
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajout du protocole https
    Par Nixar dans le forum ASP.NET
    Réponses: 4
    Dernier message: 10/03/2006, 16h34
  2. Réponses: 1
    Dernier message: 08/09/2005, 11h01
  3. Protocole HTTP: methode POST
    Par Nyx dans le forum Général Conception Web
    Réponses: 15
    Dernier message: 01/04/2005, 17h45
  4. identification sur le protocole HTTP
    Par windob dans le forum Développement
    Réponses: 20
    Dernier message: 31/03/2004, 22h52
  5. Problème lié au protocole HTTP.
    Par giviz dans le forum Développement
    Réponses: 2
    Dernier message: 03/10/2003, 17h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo