Kurze Antwort: iso-8859-1, sofern keine codierten Wörter gemäß RFC2047 (MIME) verwendet werden.
Längere Erklärung:
RFC2617, Abschnitt 2 (HTTP-Authentifizierung) definiert grundlegende Anmeldeinformationen :
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
Die Spezifikation sollte nicht gelesen werden, ohne auf RFC2616 (HTTP 1.1) für Definitionen in BNF (wie oben) zu verweisen:
Diese Spezifikation ist eine Ergänzung zur HTTP / 1.1-Spezifikation 2 . Es verwendet den erweiterten BNF-Abschnitt 2.1 dieses Dokuments und stützt sich sowohl auf die in diesem Dokument definierten Nicht-Terminals als auch auf andere Aspekte der HTTP / 1.1-Spezifikation.
RFC2616, Abschnitt 2.1 definiert TEXT (Schwerpunkt Mine):
Die TEXT-Regel wird nur für beschreibende Feldinhalte und Werte verwendet, die nicht vom Nachrichtenparser interpretiert werden sollen. Wörter von * TEXT KÖNNEN Zeichen aus anderen Zeichensätzen als
ISO-8859-1 nur enthalten, wenn sie gemäß den Regeln von RFC 2047 codiert sind.
TEXT = <any OCTET except CTLs, but including LWS>
Es ist also definitiv iso-8859-1, es sei denn, Sie erkennen eine andere Codierung gemäß den RFC2047- Regeln (MIME Punkt 3):
// Username: Mike
// Password T€ST
Mike:=?iso-8859-15?q?T€ST?=
In diesem Fall würde das Euro-Zeichen im Wort 0xA4
gemäß ISO-8859-15 codiert . Nach meinem Verständnis sollten Sie nach diesen codierten Worttrennzeichen suchen und dann die darin enthaltenen Wörter basierend auf der angegebenen Codierung decodieren. Wenn Sie dies nicht tun, denken Sie, dass das Passwort lautet =?iso-8859-15?q?T¤ST?=
(Hinweis, 0xA4
der ¤
bei der Interpretation als iso-8859-1 dekodiert wird ).
Nach meinem Verständnis kann ich keine explizitere Bestätigung finden als diese RFCs. Und einiges davon scheint widersprüchlich. Eines der vier erklärten Ziele von RFC2047 (MIME, Punkt 3) ist beispielsweise die Neudefinition von:
Das Format der Nachrichten, um ... Text-Header-Informationen in anderen Zeichensätzen als US-ASCII zu ermöglichen.
Dann definiert RFC2616 (HTTP 1.1) einen Header unter Verwendung der TEXT-Regel, die standardmäßig iso-8859-1 ist. Bedeutet das, dass jedes Wort in dieser Kopfzeile ein verschlüsseltes Wort sein sollte (dh die =?...?=
Form)?
Ebenfalls relevant ist, dass dies kein aktueller Browser tut. Sie verwenden utf-8 (Chrome, Opera), iso-8859-1 (Safari), die Systemcodepage (IE) oder etwas anderes (wie nur das wichtigste Bit von utf-8 im Fall von Firefox).
Bearbeiten: Ich habe gerade festgestellt, dass diese Antwort das Problem eher aus der serverseitigen Perspektive betrachtet.