Dane uwierzytelniające podstawowe HTTP przekazywane w adresie URL i szyfrowaniu


250

Mam pytanie dotyczące poświadczeń HTTPS i HTTP.

Załóżmy, że zabezpieczam adres URL za pomocą uwierzytelniania HTTP:

<Directory /var/www/webcallback>
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /var/www/passwd/passwords
Require user gooduser
</Directory>

Następnie uzyskuję dostęp do tego adresu URL ze zdalnego systemu za pośrednictwem protokołu HTTPS, przekazując poświadczenia w adresie URL:

https://gooduser:secretpassword@www.example.com/webcallback?foo=bar

Czy nazwa użytkownika i hasło będą automatycznie szyfrowane SSL? Czy to samo dotyczy GET i POST? Trudno mi znaleźć wiarygodne źródło tych informacji.



Bardzo stare pytanie, ale mimo to: to podejście zostało wycofane przez ietf.org/rfc/rfc3986.txt : „Użycie formatu„ użytkownik: hasło ”w polu informacja użytkownika jest przestarzałe.”
— Madbreaks

Odpowiedzi:


237

Czy nazwa użytkownika i hasło będą automatycznie szyfrowane SSL? To samo dotyczy GET i POST

Tak tak tak.

Cała komunikacja (z wyjątkiem wyszukiwania DNS, jeśli adres IP nazwy hosta nie jest jeszcze buforowany) jest szyfrowana, gdy używany jest protokół SSL.


25
+1. Pliki GET i POST, w tym adres URL, są szyfrowane. Dodam tylko - narzędzia takie jak Firebug i dane Sabotażu są w stanie wyświetlać nieszyfrowane wyniki tylko dlatego, że są częścią przeglądarki i dlatego są w stanie przechwycić żądanie, zanim zostanie zaszyfrowane. Po wysłaniu za pośrednictwem drutu wszystko jest szyfrowane.
— Sripathi Krishnan

21
Żeby było jasne, wszystko oprócz domeny jest szyfrowane. Jeśli ktoś potyka się na ten i chciałby bardziej szczegółową odpowiedź, patrz answers.google.com/answers/threadview/id/758002.html
— rcourtna

7
Ze względu na kompletność „ Internet Explorer nie obsługuje nazw użytkowników i haseł w adresach witryn sieci Web (adresy URL HTTP lub HTTPS) ” Wygląda na to, że tylko wersje Internet Explorer od 3.0 do 6.0 obsługują następującą składnię dla adresów URL HTTP lub HTTPS: http (s): //username:password@server/resource.ext Uwaga: Ta zmiana domyślnego zachowania nie wpływa na inne protokoły. Na przykład nadal możesz dołączyć informacje o użytkowniku do adresu URL FTP po zainstalowaniu aktualizacji zabezpieczeń 832894.
— Łukasz

odpowiedź ta nie zawiera żadnego wiarygodnego źródła ani dalszych wyjaśnień.
— Jens Piegsa,

26

Tak, zostanie zaszyfrowany.

Zrozumiesz to, jeśli po prostu sprawdzisz, co dzieje się za kulisami.

  1. Przeglądarka lub aplikacja najpierw rozdzieli adres URL i spróbuje uzyskać adres IP hosta za pomocą zapytania DNS. tzn. zostanie wysłane żądanie DNS w celu znalezienia adresu IP domeny (www.example.com). Należy pamiętać, że żadne inne informacje nie zostaną wysłane za pośrednictwem tego żądania.
  2. Przeglądarka lub aplikacja zainicjuje połączenie SSL z adresem IP otrzymanym z żądania DNS. Certyfikaty zostaną wymienione, a dzieje się to na poziomie transportu. W tym momencie nie zostaną przesłane żadne informacje na poziomie aplikacji. Pamiętaj, że uwierzytelnianie podstawowe jest częścią HTTP, a HTTP to protokół na poziomie aplikacji. Nie zadanie warstwy transportowej.
  3. Po ustanowieniu połączenia SSL niezbędne dane zostaną przesłane do serwera. tj .: ścieżka lub adres URL, parametry i podstawowa nazwa użytkownika i hasło uwierzytelniania.

-5

Niekoniecznie prawda. Zostanie zaszyfrowany na kablu, ale nadal będzie wylądował w dziennikach jako zwykły tekst


17
Jaki serwer WWW rejestruje nazwę użytkownika i hasło z żądań? To byłoby piekło niepewnego serwera WWW.
— Andrew Barber

1
Tak, to po prostu nieprawda. Prawdopodobnie można poinstruować apache, aby rejestrował te informacje, ale z pewnością nie robi tego domyślnie.
— DougW,

27
@Brandon prawdopodobnie myślał „w adresie URL” w ciągu zapytania (np.? Użytkownik = bob i pw = 123hackmeplz). Może to skończyć się w logach serwera.
— Mike Graf

5
Powiązane: „Gdy wywołasz ten adres URL na kliencie np. Za pomocą curl, nazwa użytkownika i hasło będą wyraźnie widoczne na liście procesów i mogą pojawić się w pliku historii bash.” - stackoverflow.com/a/4981309
— Hawkeye Parker

1
@ zb226 pytający konkretnie wspomniał o podaniu poświadczeń w adresie URL.
— Lambart
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.