2010-08-25 4 views
12

Dies ist eine Follow-up-Post von meinem previous question about BASIC auth over HTTPSHTTPS, URL-Pfad und Query-String

Sind der Pfad zu der Ressource und Abfrage-String sicher an den Server übergeben, wenn ich HTTPS verwenden?

dh
URI:http://server/path/to/a/resource?with=a&query=string
Server: Server
Pfad:/path/to/a/Ressource
Query-String: mit = a & Abfrage = string

+0

Zugehörig: Ist eine HTTPS-Abfragezeichenfolge sicher? http://stackoverflow.com/questions/323200/is-a-https-query-string-secure?rq=1 –

Antwort

15

Dies ist eine wirklich gute Erklärung dafür: http://answers.google.com/answers/threadview/id/758002.html#answer

Zusammenfassung: Nur der Host und der Port sind unverschlüsselt sichtbar.

Kurz gesagt, ja. Sie sollten jedoch keine vertraulichen Daten in URLs speichern, da sie möglicherweise in den Browserprotokoll- und Serverprotokolldateien angezeigt werden. Und jeder, der über deine Schulter schaut, sieht es auch.

1

HTTPS ist einfach HTTP getunnelt über eine SSL-Verbindung. Dies bedeutet, dass die Anfrage, Antwort, Header und Inhalt alle innerhalb des SSL-Tunnels sind und daher verschlüsselt werden sollten.

10

Ja ist es - die gesamte Sitzung ist gesichert und verschlüsselt, so dass alles, was Sie senden, einschließlich der Abfragezeichenfolge ist nicht lesbar.

Sie können dies selbst beweisen, wenn Sie möchten, indem Sie etwas wie Fiddler verwenden, um den http/https-Verkehr anzuzeigen, den Sie beim Besuch einer sicheren URL generieren. Alles, was Sie HTTPS senden über die Abfragezeichenfolgeflag nicht zeigen, wie hier gezeigt:

alt text

Die tatsächliche URL Ich sah aus wie diese zu Besuch war:

https://www.halifax-online.co.uk/_mem_bin/formslogin.asp?source=halifaxcouk&simigvis=

Wie schon aus anderen Antworten, sollten Sie keine sensiblen Informationen in der Querystring übergeben, da dies in Ihren Webservers-Protokolldateien gespeichert werden kann. Wenn Sie also eine Kombination aus Benutzername und Passwort übergeben, kann jemand eine Zugriff auf Ihre Protokolle wäre in der Lage, diese Informationen zu erfassen. Dies könnte dazu führen, dass sich jemand in Ihre Website/Anwendung einträgt , als wären sie jemand anderes, selbst wenn Sie sich bemühen, Passwörter in Ihrer Datenbank als gesalzene Hashes statt als Klartext zu speichern.