47 Stimmen

Werden REST-Anforderung Header durch SSL verschlüsselt?

Ich entwickle eine Client/Server-App, die über REST kommunizieren wird. Einige benutzerdefinierte Anfragedaten werden im Header der Anfrage gespeichert. Sowohl der sendende als auch der empfangende Server verfügen über ein SSL-Zertifikat - werden die Header verschlüsselt oder nur der Inhalt?

1voto

Avi Flax Punkte 48869

Die anderen Antworten sind richtig, dass die Header tatsächlich verschlüsselt sind, zusammen mit dem Body, wenn SSL verwendet wird. Aber beachten Sie, dass die URL, die Query-Parameter enthalten kann, niemals verschlüsselt wird. Seien Sie also vorsichtig, niemals sensible Informationen in URL-Query-Parametern zu platzieren.

Update: wie @blowdart unten angemerkt hat, ist dies falsch. Siehe den Kommentar unten.

4 Stimmen

Nein, das stimmt nicht ganz. Abfrageparameter werden nach dem Handshake gesendet und sind daher verschlüsselt; SSL entfernt sie ausdrücklich und sendet sie als Teil des Seitengebiets.

9 Stimmen

@blowdart - sehr wahr, aber Browser speichern immer noch Abfragezeichenfolgen in ihrem Verlauf. Daher ist es besser, keine sensiblen Informationen in einer Abfragezeichenfolge zu verwenden.

1 Stimmen

Ich habe inzwischen bestätigt, dass @blowdart richtig liegt; meine Antwort war falsch.

0voto

SSL ... oder besser gesagt HTTPS (HTTP über SSL) sendet alle HTTP-Inhalte über SSL, und da HTTP-Inhalte und Header tatsächlich dasselbe sind, bedeutet dies, dass die Header ebenfalls verschlüsselt sind. Da GET- und POST-Daten über HTTP-Header gesendet werden, macht es nur Sinn, wenn beim sicheren Senden von Daten nicht nur der Antwortcode oder Inhalt verschlüsselt wird.

0 Stimmen

HTTP-Inhalte und Header sind nicht dasselbe, und POST-Daten werden nicht über HTTP-Header gesendet, sondern im Anforderungskörper.

0 Stimmen

Die von Wesley bereitgestellten Informationen sind falsch. POST platziert die Daten im Body der Nachricht.

-3voto

Jacob Toronto Punkte 17

Nicht alles ist verschlüsselt: Die Abfragezeichenkette der Anforderung ist nicht verschlüsselt. Glauben Sie mir, ich habe Anforderungen wie diese gesehen:

https://mydomain.com/authenticate?user=username&password=MyStrongPasswordSentInTheClear

Bitte geben Sie sensible Daten nicht als Parameter in der Abfragezeichenkette an.

2 Stimmen

Selbst die Abfrage ist durch SSL/TLS zwischen Ihrem Browser und dem Server geschützt.

0 Stimmen

Nicht wahr. Alles nach mydomain.com wird innerhalb des HTTP GET/POST/etc.-Requests übertragen und ist als solches verschlüsselt. Die URL-Zeichenkette selbst leckt jedoch normalerweise parallel in logischen Pfaden, z. B. im Browserverlauf, in Logs, gespeicherten Links, Favoriten, Symbolleisten, Serverlogs; und wahrscheinlich am schlimmsten - in einigen Webanalyse-Referenzen. Da die ursprüngliche Frage von REST handelt, sind viele davon irrelevant. Was auch immer es ist, als bewährte Praxis gilt meine persönliche Faustregel: "Setzen Sie keine sensiblen Daten (Passwörter, PII, DB-IDs) in URLs ein."

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X