it-swarm-tr.com

GET ve POST içeren SSL

Güvenlik konusunda oldukça yeniyim, bu yüzden temel sorumu affedin, ancak SSL POST isteklerini şifreliyor, ancak GET isteklerini şifrelemiyor mu?

Örneğin, iki isteğim varsa

GET: www.mycoolsite.com/index?id=1&type=xyz

POST

site: www.mycoolsite.com/index {Params: id = 1 & type = xyz}

Birinin tüm GET isteğini (okuma kimliği ve türü) arayabildiğini varsaymak güvenli midir, ancak POST'a müdahale ederse, site yolunu görebilir, ancak devam ettiği için SSL, id ve tip parametrelerini göremiyorlar mı?

58
TomJ

Şimdi soru şu: Bir HTTP isteğinin neye benzediğini biliyor musunuz ?

Değil, varsayalım, bir örnek:

GET /test?param1=hello&param2=world HTTP/1.1
Host: subdomain.test.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive

Bu bilginin tümü SSL aktarımı içinde düzenlenmiştir - cevabınızdaki yorumda belirtildiği gibi. Bunun anlamı:

  • Get parametreleri şifrelenir.
  • HTTP Gövdesi (post parametreleri) şifrelenir.

Mutlaka güvenli olmayan şey:

  • İstediğiniz Sunucu. Bugünlerde çoğu web sunucusu Host: something parametreleri, böylece birden çok alan bir arayüz ve IP adresindeki bir web sunucusu tarafından işlenebilir. Açıkça, bu başlık is şifreli, ancak siteye https dışı trafik çalıştırırsanız hangi ana bilgisayarlara bağlanabileceğiniz açık olmalıdır. Durum böyle olmasa bile, ters DNS kesinlikle bu IP'de neyin barındırıldığını size söyleyecektir ve muhtemelen oradan makul bir tahmin yapabilirsiniz.
  • Tarayıcı/istemci bilgileriniz. Ne yazık ki her https istemcisi farklıdır ve müzakere süreci potansiyel olarak hangi platformda çalıştığını veya hangi tarayıcı olduğunu verebilir. Bu hiçbir şekilde dünyanın sonu değil, sadece anlaşılması gereken bir gerçek.

POST istekleri, bir gövde içermeleri dışında alma isteklerine benzer. Bu şöyle görünebilir:

POST /testpost HTTP/1.1
Host: subdomain.test.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Connection: keep-alive

param1=hello&param2=hello

Tabii ki daha karmaşık varyantlar var, ama aslında her şey zaten şifreli.

59
user2213

Bunu diğer yanıtlarda görmedim, ancak genellikle SSL ile bile GET isteklerine gizli bilgi (parolalar) koymamalısınız, ancak POST yerine kullanmalısınız. hassas bilgiler genellikle her iki uçta da kaydedilir; ör. tarayıcı geçmişiniz listesinde (https://www.example.com?user=me&password=MyPassword) ve sunucudaki günlükler. POST bilgi (özellikle parolalarla) genellikle web sunucusu günlüklerine yazılmaz, ancak açık bir şekilde günlüğe kaydedilecek şekilde yapılandırılabilir - bu nedenle farklı sitelerde parolaları yeniden kullanmamak (veya benzer) kullanmamak en iyisidir.

36
dr jimbob

SSL, istenen yöntem ve URL dahil olmak üzere tüm bağlantının şifrelenmesini sağlar. GET, POST kadar iyi korunur.

SSL istendiği gibi çalıştığında, bir dinleyici yalnızca hangi IP adresinin hangi IP adresine (ve hangi bağlantı noktasında, ancak genellikle 443) bağlandığını, ne zaman ve ne kadar olduğunu görebilir. Aynı makinede birden fazla sanal ana bilgisayar varsa, saldırgan hangisiyle iletişim kurduğunuzu bilemez (ancak kulak misafiri DNS isteklerinizi HTTPS isteğinden hemen önce görebilir ve makul bir tahminde bulunabilir). Tüm bu bilgiler de doğrulanır: etkin bir saldırgan ortadaki adam oynatamaz ve aktarılan verileri değiştiremez.

SSL'nin amaçlandığı gibi çalışmasını sağlayabilecek şeyler:

  • Bazı verilerin yanlışlıkla düz HTTP üzerinden gönderildiği uygulama kötüye kullanımı.
  • SSL protokolündeki, örneğin BEAST güvenlik açığı gibi nadir güvenlik açıklarından biri.
  • Sunucu sertifikası sızdırılmışsa, bir sertifika yetkilisi saldırgana uygun olmayan bir sertifika teslim ettiğinden veya istemci sunucunun sertifikasını doğru denetlemediğinden, saldırganın sunucu olarak geçmesine izin veren hatalı sertifika işleme.
    • Bu notta, SSL'nin çoğu zaman kullanıldığından sunucunun kimliğini doğruladığını ancak istemcinin kimliğini doğrulamadığını unutmayın. Sunucu, istemci hakkında hiçbir şey üstlenemez.
  • A yan kanal saldırısı kulak misafiri için bazı bilgiler açığa çıkarabilir. Örneğin, katılımcıların veri gönderme zamanlaması, verinin nasıl hesaplandığı ve dolayısıyla verinin doğası hakkında bir şeyler ortaya çıkarabilir. Her paketin boyutu saldırgan tarafından da bilinir. Bunun nasıl ortaya çıkabileceği katılımcıların önlem alıp almayacağına ve bilgilerin niteliğine bağlıdır. Gerçek zamanlı konuşma, bu tür trafik analizine bir dosyanın indirilmesinden çok daha eğilimlidir.

Ayrıca bakınız Bir HTTPS bağlantısı kurulduğunu gözlemleyen kişilerin bunun şifresini nasıl çözeceğini bilmemesi nasıl mümkün olabilir? bir arka plan için.

Bunun HTTP üzerinden nasıl başarıldığına dair bir küçük ayrıntı daha eklemek için.
Muhtemelen merak ediyorsunuz (ya da SSL tokalaşma ) hakkında bilginiz varsa, GET isteği şifrelenmeden gönderilmeden SSL kanalının nasıl oluşturulduğunu merak ediyorsunuz? İsteğimin bir proxy üzerinden geçmesi gerekiyorsa - bu nasıl mümkün olabilir?

HTTP v1.1, temelde sunucuya yalnızca en basit Ana Bilgisayar URL'sini içeren (herhangi bir ek olmadan) basitleştirilmiş bir istek gönderen bir CONNECT HTTP Yöntemi getirdi parametreler, başlıklar veya gövde). Bu talebe dayanarak bir SSL tüneli oluşturulur ve daha sonra orijinal GET (veya POST) isteği üzerine gönderilir.

6
AviD

Bahsetilmeyen başka bir nokta, GET kullanıyorsanız ve herhangi bir katıştırılmış veya bağlantılı üçüncü taraf içeriğine (örneğin site reklamları) sahipseniz, bu üçüncü taraf sitenin Referans URL'sinde tam URL'yi (hassas parametre verileriyle) alacağıdır.

Bu, verileri almaması gereken üçüncü taraflara açıklar.

4
Rodney

Kaynak: Yığın Taşmasına Cevap

GET yöntemi yalnızca veri alımı içindir ve herhangi bir yan etkisi olmamalıdır . Ancak POST bu özel amaç için tasarlanmıştır: sunucu tarafındaki verileri değiştirmek.

GET istekleri, dövme yaparken bir sayfaya bir görüntü yerleştirerek kolayca ön plana alınabilir (bkz Siteler Arası İstek Sahteciliği ) POST istekleri o kadar kolay değildir (bu da yalnızca yetkili POST istek) izin vermeniz için bir neden.

4