web-dev-qa-db-fra.com

Pourquoi l'authentification HTTP Basic code-t-elle le nom d'utilisateur et le mot de passe avec base64?

RFC 2617 nécessite que dans authentification HTTP Basic , le nom d'utilisateur et le mot de passe doivent être encodés avec base64.

Pour recevoir l'autorisation, le client envoie l'ID utilisateur et le mot de passe, séparés par un seul caractère deux-points (":"), dans une chaîne codée en base64 dans les informations d'identification.

  basic-credentials = base64-user-pass
  base64-user-pass  = <base64 encoding of user-pass,
                   except not limited to 76 char/line>
  user-pass   = userid ":" password
  userid      = *<TEXT excluding ":">
  password    = *TEXT

Les ID utilisateur peuvent être sensibles à la casse.

Si l'agent utilisateur souhaite envoyer l'ID utilisateur "Aladdin" et le mot de passe "sésame ouvert", il utilisera le champ d'en-tête suivant:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Étant donné que le codage base64 n'offre aucune sécurité des informations d'identification, pourquoi cela est-il fait?

44
josh3736

Ce n'est pas du tout fait pour des raisons de sécurité, et plus pour échapper aux caractères spéciaux

https://stackoverflow.com/questions/4070693/why-base64-encryption

TLS serait employé pour la sécurité.

54
Brian Adkins