Benutzername und Passwort in https URL
Betrachten Sie die URL:
https://foo:[email protected]
Nicht den Benutzernamen/Kennwort ein Teil in dem obigen Beispiel die Qualifikation als "URL-parameter", wie definiert in diese Frage?
InformationsquelleAutor der Frage jefflunt | 2011-02-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie den Benutzernamen und das Passwort vor dem host werden diese Daten nicht gesendet, um dem server. Es wird stattdessen transformiert, um eine request-header abhängig von der authentication-schema verwendet. Die meisten der Zeit dies wird Basic-Authdie ich unten beschreiben. Eine ähnliche (aber deutlich weniger oft verwendet werden) Authentifizierungs-Schema ist Digest Authdie heute eine vergleichbare Sicherheit bietet.
Mit Basic-Auth die HTTP-Anforderung, die aus der Frage wird so Aussehen:
Den hash, wie der string Sie sehen, es wird erstellt, indem der browser so:
base64_encode(username + ":" + password)
.Außenseiter der HTTPS übertragen, werden diese Informationen ausgeblendet ist (wie alles auf der HTTP-Ebene). Sollten Sie kümmern sich um die Protokollierung auf dem client und alle zwischengeschalteten Server obwohl. Die Benutzernamen werden in der Regel gezeigt, in server-logs, aber das Passwort nicht. Ist dies nicht gewährleistet, obwohl. Beim Aufruf dieser URL auf dem client mit z.B.
curl
Benutzernamen und ein Passwort, werden deutlich sichtbar auf der Prozess-Liste und könnte sich in der bash-history-Datei.Wenn Sie der Ansatz von ayushBenutzername und Passwort immer sich in server-logs von deinem webserver, application server, caches, ... es sei denn, Sie speziell konfigurieren, dass Ihre Server nicht loggen. Dies gilt nur für Server Lesen zu können, das nicht verschlüsselte http-Daten, wie z.B. application server obwohl.
Basic auth ist standardisiert und umgesetzt von den Browsern mit der Vorstellung dieses kleinen Benutzername/Passwort popup. Wenn Sie die Benutzername/passwort in ein HTML-Formular per GET oder POST, die Sie implementieren müssen, um alle login/logout Logik selbst (was vielleicht ein Vorteil). Aber Sie sollten nie übertragen Benutzernamen und Passwörter per GET-Parameter. Wenn Sie müssen, verwenden Sie den POST statt. Das verhindert, dass die Protokollierung dieser Daten standardmäßig.
Bei der Implementierung eines Authentifizierungs-Mechanismus mit einer user/Passwort-Eingabe-Formular und einer nachträglichen cookie-basierte session, wie es wird Häufig verwendet, heute haben Sie, um sicherzustellen, dass das Kennwort ist entweder transportiert mit POST-requests oder einer der standardisierten Authentifizierungsschemas nur oben.
Abschluss könnte ich sagen, dass die übertragung von Daten über HTTPS ist sicher, solange du dich darum kümmern, dass das Passwort nicht turn up an unerwarteten Orten. Aber das Gutachten gilt für jede übertragung von einem Passwort in irgendeiner Weise.
InformationsquelleAutor der Antwort Holger Just