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

Développement Discussion :

[HTTP] Authentification htaccess


Sujet :

Développement

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut [HTTP] Authentification htaccess
    Bonjour,

    Je cherche à récupérer le contenu d'un fichier qui est protégé par une authentification htaccess basic.

    J'ai réussi à trouver un bride de requête HTTP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GET http://domain.com/fichier.txt HTTP/1.0
    Authorization: Basic bG9naW46cGFzcwo=
    bG9naW46cGFzcwo= correspondant au couple login:password uuencodé.

    Mais je reçois en réponse un accès refusé :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
    <html><head>
    <title>401 Authorization Required</title>
    </head><body>
    <h1>Authorization Required</h1>
    <p>This server could not verify that you
    are authorized to access the document
    requested.  Either you supplied the wrong
    credentials (e.g., bad password), or your
    browser doesn't understand how to supply
    the credentials required.</p>
    </body></html>

    Je développe en C à la de la bibliothèque gnet.

    Je suis nul en ce qui concerne les réseaux donc je me tourne vers vous pour savoir si je suis parti dans la bonne voie et pourquoi ça ne fonctionne pas ?


  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    C'est encodé en base64 :
    Pour obtenir l'autorisation d'accès, le client enverra l'user-ID et le mot de passe, séparatés par un "deux-points" (":"), le tout encodé en base64 [5].

    Accréditif_de_base = "Basic" SP cookie-basique

    cookie-basique = ["userID-mot_de_passe" encodé base64 [5],
    limité à 76 char/line]

    userID-mot_de_passe = [ nom_ID ] ":" *TEXT
    Et gnet semble te proposer le nécessaire

  3. #3
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    Citation Envoyé par julp Voir le message
    C'est encodé en base64 :

    Et gnet semble te proposer le nécessaire
    Non ça ne marche pas mieux : j'obtiens la même chaîne (c'est plus simple à faire avec la fonction qui va bien c'est déjà ça de gagné )

    Je me demande s'il ne pas quelque chose à ma requête ?

    Je suis sous Linux et j'ai bien mis les sauts de ligne "\r\n"

  4. #4
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Sous firefox, je te conseilles de télécharger le mode LiveHTTPHeaders qui permet de visualiser en direct les requêtes http (côté client en réception et en envoi).

    Tu fais un test réel (avec le navigateur). Tu recupère la requête et t'as plus qu'à l'insérer dans ton code

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Je l'ai fait en PHP :
    Pour l'authentification j'ajoute l'entête :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete .= 'Authorization: Basic ' . base64_encode($infos['user'] . ':' . $infos['pass']) . "\r\n";
    Et la partie base64_encode me donne pour ton exemple :

  6. #6
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Par défaut
    J'avais juste oublié un espace entre l'url et HTTP (bien sûr en changeant l'url, je l'ai rajouté ) :
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    command = g_strconcat ("GET ", from, " HTTP/1.0\r\n", "Authorization: Basic ", mdp_64, "\r\n", NULL);

    Bon maintenant le programme se bloque, c'est sûrement qu'il se passe quelque chose

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/08/2008, 17h28
  2. Réponses: 1
    Dernier message: 14/03/2008, 15h56
  3. authentification .htaccess / PHP
    Par nicoweb371 dans le forum Apache
    Réponses: 1
    Dernier message: 22/11/2006, 21h39
  4. [HTTP] authentification par méthode post
    Par G00x2 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 03/07/2005, 15h05
  5. [passwd user http]authentification
    Par ould dans le forum Sécurité
    Réponses: 2
    Dernier message: 08/07/2004, 15h08

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