un. Aperçu de la certification de base
Pendant le processus de communication du protocole HTTP, le protocole HTTP définit le processus d'authentification de base pour permettre au serveur HTTP d'effectuer des cartes d'identité utilisateur sur le navigateur Web. Lorsqu'un client fait une demande de données au serveur HTTP, si le client n'est pas authentifié, le serveur HTTP vérifiera le nom d'utilisateur et le mot de passe du client via le processus d'authentification de base pour déterminer si l'utilisateur est légal. Après avoir reçu la demande d'authentification d'identité du serveur HTTP, le client incitera l'utilisateur à saisir le nom d'utilisateur et le mot de passe, puis crypter le nom d'utilisateur et le mot de passe avec Base64. Le texte chiffré chiffré sera joint aux informations de demande. Par exemple, lorsque le nom d'utilisateur est Anjuta et que le mot de passe est: 123456, le client fusionne le nom d'utilisateur et le mot de passe avec ":", et crypte la chaîne fusionnée avec Base64 en tant que chiffre d'affaires, et ajoute le texte chiffré à l'en-tête de demande à chaque fois que les données sont demandées. Après que chaque fois que le serveur HTTP reçoive le paquet de demande, il obtient les informations utilisateur jointes au client (Nom d'utilisateur et mot de passe cryptés Base64) en fonction du protocole, déroule le paquet de demande et vérifie le nom d'utilisateur et le mot de passe. Si le nom d'utilisateur et le mot de passe sont corrects, il renvoie les données requises par le client en fonction de la demande du client; Sinon, il renvoie un code d'erreur ou requequie le client pour fournir le nom d'utilisateur et le mot de passe.
deux. Le processus de certification de base
1. Le client demande des données du serveur et le contenu demandé peut être une page Web ou un autre type MIME. Pour le moment, en supposant que le client n'a pas encore été vérifié, le client fournit la demande suivante au serveur:
Get /index.html http / 1.0
Hôte: www.google.com
2. Le serveur envoie le code de demande de vérification 401 au client, et les données renvoyées par le serveur sont à peu près comme suit:
Http / 1.0 401 non autorisé
Serveur: sokevo / 1.0
Www-authenticate: Basic realm = "google.com"
Type de contenu: texte / html
Content-Length: xxx
3. Lorsqu'un client conforme à la spécification HTTP1.0 ou 1.1 (tel que IE, Firefox) reçoit une valeur de retour 401, une fenêtre de connexion apparaîtra automatiquement, obligeant l'utilisateur à entrer le nom d'utilisateur et le mot de passe.
4. Une fois que l'utilisateur est entré dans le nom d'utilisateur et le mot de passe, le nom d'utilisateur et le mot de passe sont chiffrés dans le cryptage Base64 et le texte chiffré est placé dans les informations de demande précédentes. Les premières informations de demande envoyées par le client deviennent le contenu suivant:
Get /index.html http / 1.0
Hôte: www.google.com
Autorisation: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Remarque: xxxx .... représente le nom d'utilisateur et le mot de passe cryptés.
5. Après avoir reçu les informations de demande ci-dessus, le serveur récupère et décrypte les informations de l'utilisateur après le champ d'autorisation, et compare et vérifie le nom d'utilisateur et le mot de passe déchiffré avec la base de données de l'utilisateur. Si le nom d'utilisateur et le mot de passe sont corrects, le serveur enverra la ressource demandée au client en fonction de la demande:
trois. Inconvénients de la certification de base
L'objectif de l'authentification de base HTTP est de fournir des fonctions d'authentification utilisateur simples. Le processus d'authentification est simple et clair et convient aux systèmes ou aux appareils avec de faibles exigences de sécurité. Par exemple, l'authentification de la page de configuration du routeur utilisé par tout le monde est presque toujours adoptée. L'inconvénient est qu'il n'a pas de stratégie d'authentification flexible et fiable, telle que l'incapacité de fournir une fonction d'authentification du domaine (domaine ou du domaine). De plus, la résistance au cryptage de Base64 est très faible, ce qui ne peut empêcher la recherche de Sohu de la rechercher. Bien sûr, le système d'authentification de base HTTP peut également être combiné avec SSL ou Kerberos pour obtenir un système d'authentification avec des performances de haute sécurité (relativement)
Quatre. Code d'implémentation Java certifié de base
HttpSession session = request.getSession (); String user = (string) session.getAttribute ("utilisateur"); String Pass; if (user == null) {try {réponse.SetcharAtteRencoding ("gbk"); Printwriter ut = réponse.getWriter (); String Authorization = request.GetHeader ("Autorisation"); if (Authorization == null || Authorization.equals ("")) {réponse.setStatus (401); Response.sethEader ("www-authenticiate", "Basic Realm = /" Veuillez saisir le mot de passe de l'administrateur / ""); Out.print ("Désolé de ne pas avoir la permission !!"); retour; } String userAndPass = new String (new Base64DecOder (). DecodeBuffer (Authorization.split ("" ") [1])); if (userandPass.split (": "). Length <2) {réponse.SetStatus (401); Respity.Setheader (" www-authenticate "," Realm Basic = / "PLAKE ENTRER LA GNOTSORDS Out.Print (Désolé pour ne pas avoir la permission !! "); Dispatcher = demande ex) {ex.printStackTrace ();}} else {requestDispatcher Dispatcher = request.getRequestDispatcher ("index.jsp");Ce qui précède est la brève discussion sur les principes et les méthodes de mise en œuvre de HTTP à l'aide de l'authentification de base qui vous a été apportée. J'espère que tout le monde pourra soutenir Wulin.com plus ~