GET verileri de HTTPS'de şifreleniyor mu?


Yanıtlar:


148

URL ve hatta ( GET) komutu dahil olmak üzere tüm istek şifrelenir . Bir proxy sunucusu gibi müdahale eden bir tarafın öğrenebileceği tek şey, hedef adres ve bağlantı noktasıdır.

Bununla birlikte, bir TLS el sıkışmasının Client Hello paketinin, bazıları yalnızca daha yeni işletim sistemlerinde olsa da, tüm modern ana tarayıcılar tarafından kullanılan SNI uzantısı (teşekkürler @hafichuk) aracılığıyla tam nitelikli alan adını düz metin olarak tanıtabileceğini unutmayın.

DÜZENLEME: (Bu bana bir "İyi Cevap" rozeti kazandırdığından, sanırım tüm soruyu yanıtlamalıyım…)

Yanıtın tamamı da şifrelenir; vekiller onun herhangi bir bölümünü yakalayamaz.

Google, aramaları ve diğer içerikleri https üzerinden sunar çünkü bunların tamamı herkese açık değildir ve ayrıca genel içeriğin bir kısmını bir MITM'den gizlemek isteyebilirsiniz . Her halükarda, Google'ın kendileri için yanıt vermesine izin vermek en iyisidir .


2
URL’nin şifreli olduğu iddiasından biraz memnun değilim. Ana bilgisayar adı url'nin bir parçası olarak kabul edilmiyor mu? Eğer öyleyse, ifade yanlıştır. Fiziksel posta gönderirken hedef adresini gizleyemeyeceğiniz şekilde ana bilgisayar adını / IP adresini ISS / proxy sunucusundan gizlemenin bir yolu yoktur.
Abhishek Anand

1
@Abhishek: Ana bilgisayar adı TCP / IP başlığında mevcut değil. Cevabımda IP adreslerini ele alıyorum.
Marcelo Cantos

Alan bir değil şifrelenmiş. Bu, isme dayalı sanal konakları (IP tabanlı) desteklemek içindir. @MarceloCantos, URL'nin geri kalanının (yani GETkomutun) şifrelenmiş olduğu konusunda tamamen doğrudur . Bu, RFC 4366
hafichuk

@hafichuk: Bunun için teşekkürler. TLS'nin fqdn'nin reklamını yapabileceğini bilmiyordum. En son bir https multiserver kurmaya çalıştığımda (birkaç yıl önce itiraf edeceğim), tek bir ip üzerinden imkansız görünüyordu.
Marcelo Cantos

Etki alanı adını içeren TLS'ye gerçekten önemli ek: Etki alanı adını da içeren düz metin DNS talebini unutmayın. Muhtemelen şifrelenmiş HTTPS trafiğinizi görebilen biri de DNS isteklerinizi izleyebilir.
Tim G

65

URL'nin kendisi şifrelenmiştir, bu nedenle sorgu dizesindeki parametreler kablo boyunca düz bir şekilde hareket etmez.

Bununla birlikte, GET verilerini içeren URL'lerin genellikle web sunucusu tarafından günlüğe kaydedildiğini, ancak POST verilerinin nadiren kaydedildiğini unutmayın. Öyleyse, böyle bir şey yapmayı planlıyorsanız, yapma /login/?username=john&password=doe; bunun yerine bir POST kullanın.


2
+1 teşekkürler. Bu benim kendi fiziksel sunucumda, bu yüzden günlükler hakkında çok endişelenmiyorum, ancak bunu paylaşılan bir barındırma ortamında düşünen herkes için iyi bir değerlendirme. Ayrıca dikkate almak da önemli çünkü kredi kartı numaralarını bu şekilde aktaracağım ve kesinlikle bunları
kaydetmek istemeyeceğim

3
Kendi kutunuz olması gerçekten önemli değil. Ona sahip olan başka birinin (yani kötü hackerların) bu şifreleri düz metin olarak görmesini de istemezsiniz. Veya bu CC numaraları (bunları başka bir yerde saklamadığınızı varsayarak).
Thomas

1
Bunları URL sorgu dizesine değil POST gövdesine koymalısınız.
Thomas

1
Korkunuz, wbeserver'ın günlüklerine erişim konusunda web sitesinin verilerine (DB, dosya vb.) Erişimden daha az kısıtlaması olması mı? IMHO, veriler web sunucusuna güvenli bir şekilde eriştiği sürece, her şey yolunda. sadece web sunucusuna erişimi olan kişiler güvenilir kabul edilmelidir, çünkü eğer yoksa, verileri bir şekilde okumalarını engellemenin bir yolu yoktur.
Serge Profafilecebook

1
Erişim günlüğünde şifreleri GET üzerinden gönderilir ve bunlar kaydedilir, bunlar edilir DEĞİL karma hale getirilir. Bunun en büyük sorun olduğuna inanıyorum. Veritabanında şifrelerin karma hale getirilmiş olması, bunları web sunucusunun erişim günlüğünde arayabilmeniz önemli değildir. Veritabanında hashing uygulanmalıdır, eğer değilse, lütfen düzeltin.
Steen Schütt

22

HTTPS Herhangi bir HTTP verisi aktarılmadan önce temel bir SSL kuralı oluşturur. Bu, tüm URL verilerinin (bağlantı kurmak için kullanılan ana bilgisayar adı hariç) yalnızca bu şifreli bağlantı içinde taşınmasını ve tüm HTTPS verileriyle aynı şekilde ortadaki adam saldırılarına karşı korunmasını sağlar.

Yukarıdakiler, burada bulunan Google Cevapları'ndan ÇOK kapsamlı bir yanıtın bir parçasıdır:

http://answers.google.com/answers/threadview/id/758002.html#answer



7

Her şey şifrelenmiştir, ancak sorgunuzun sunucunun günlüklerinde kalacağını ve çeşitli günlük analizcileri vb. Tarafından erişilebilir olacağını unutmayın (bu genellikle POST isteğinde geçerli değildir).


1
hangi sunucular? kimin için erişilebilir?
Jader Dias

2
@Jader, en azından bu sunucuların yöneticilerine ve bilgisayar korsanlarına. POST isteği ile bilgiler günlüklerde kalmaz, bu nedenle açık bir şekilde günlüğe kaydedilmedikçe, günlüklerle ilgili bir sorun yoktur. GET sorguları günlüklerde kalır ve günlükte ne olursa olsun (veya yönetici bu günlükleri kötü etkinlikler için kullanmaya karar verirse), başınız belada demektir.
Eugene Mayevski 'Callback

5

İstek iletilmeden önce bağlantı şifrelenir. Yani evet, sorgu dizesi dahil istek de şifrelenir.


5

HTTPS aracılığıyla bir web sitesine bağlandım ve bir sürü GET parametresi geçtim. Daha sonra ağı koklamak için wireshark kullandım. HTTP kullanılarak, URL şifrelenmemiş olarak gönderilir, bu da URL'deki tüm GET parametrelerini kolayca görebileceğim anlamına gelir. HTTPS kullanarak her şey şifrelenir ve hangi paketin GET komutu olduğunu bile göremiyorum, içeriğini bırakın!


4

Evet, güvenlidir. SSL her şeyi şifreler.

POST talebinden alıntı:

POST /foo HTTP/1.1
... some other headers

GET talebinden alıntı:

GET /foo?a=b HTTP/1.1
... some other headers

Her iki durumda da sokete gönderilen her şey şifrelenir. Müşterinin bir GET isteği sırasında tarayıcısında parametreleri görmesi , ortadaki bir adamın da aynı şeyi göreceği anlamına gelmez.


3

SSL, başlık ayrıştırmadan önce gerçekleşir, bunun anlamı:

Client creates Request
Request gets encrypted
Encrypted request gets transmitted to the Server
Server decrypts the Request
Request gets parsed

Bir İstek şuna benzer (tam sözdizimini hatırlayamaz, ancak bu yeterince yakın olmalıdır):

GET /search?q=qwerty HTTP/1.1
Host: www.google.de

Bu aynı zamanda, aynı IP üzerindeki birkaç ana bilgisayar için farklı SSL Sertifikalarına sahip olmanın sorunlu olmasının nedenidir, istenen Ana Bilgisayar adı şifre çözülene kadar bilinmemektedir.


1
HTTP/1.1İlk satırın sonunda gelir.
Marcelo Cantos

@Marcelos Cantos: Teşekkürler, HTTP İsteklerini elle yazmak zorunda kalmayalı epey oldu.
Morfildur

0

GET isteği HTTPS kullanılırken şifrelenir - aslında bu nedenle güvenli web sitelerinin benzersiz bir IP adresine sahip olması gerekir - istekten istenen ana bilgisayar adını (veya sanal dizini) şifresi çözülene kadar almanın bir yolu yoktur.


JFYI: İstemcinin ana bilgisayar adını belirlemesine ve böylece sunucunun ilgili sertifikayı seçmesine izin veren bir TLS uzantısı vardır.
Eugene Mayevski'nin Geri Dönüşü

@Eugene: Teşekkürler - TLS uzantısının farkındayım, ancak yalnızca en gevşek farkındalık anlamında - ayrıntılar hakkında hiçbir şey bilmiyorum veya gerçek kullanımda ne kadar geniş (veya olmayabilir) olduğunu bilmiyorum.
Michael Burr
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.