Tarayıcılar buna göre http ve https isteklerini nasıl gönderir?


2

Protokolsüz bir web sitesi adı yazdığımızda, tarayıcılar doğru protokolü kullanarak doğru web sitesini verir (ör. Http veya https)

Örneğin, google.com yazıp return tuşuna basarsam, tarayıcı bana https://google.com adresini verir.

Tarayıcı bunu nasıl yapar?


1
“Protokolsüz bir web sitesi adı yazdığımızda, tarayıcılar doğru protokolü kullanarak doğru web sitesini veriyor.” Bundan emin misiniz? Çoğu zaman web sunucusu bu şekilde yönlendirir. Hangi işletim sistemi üzerinde çalıştığınızı bilmiyor, ancak curl -I -L google.comkomut satırına yazmaya çalışın ve yönlendirmelerin akışını görün.
JakeGould

1
Ve, şunu söylediğimde, curl -I -L google.combeni gönderen bir 301 görüyorum http://www.google.com/ve 200'ü aldığım son varış yeri HTTPS gibi görünmüyor, başlıkları yanlış okumadığım sürece?
JakeGould

Yanıtlar:


5

Bu, standartlaştırılmış bir davranış değildir, çünkü kullanıcı protokolü belirlemezse, hiçbir RFC dokümanı bir müşterinin nasıl davranması gerektiğini söylemez. Fakat muhtemelen, çoğu varsayılan yapılandırmada, istemciler http://önce güvenli olmayan bir bağlantı (örn. ) Kullanarak bağlanmaya çalışırlar . http://URL'nizin önüne yazmayı düşündüğünüzü tahmin ediyorlar .

Bu durumda, bu sitenin güvenli bir bağlantı üzerinden kullanılabileceğini belirleyen müşteri değil (örn. https://), Müşterinizin isteğini yönlendiren web sunucusudur. Böylece, google.comtarayıcınızın adres çubuğuna yazarken , tarayıcınız önce bağlantı kurar http://google.comve web sunucusu bu google.comisteğinizi yönlendirir https://google.com. Bu yüzden hala https://google sürümüne giriyorsun.

Bunu http://google.comadres çubuğuna elle yazarak da deneyebilirsiniz . Google sizi hala yönlendirir https://google.com. Ancak bu, çoğu web sunucusu yazılımının varsayılan davranışı değildir; Google, web sunucularının yapılandırmasında manuel olarak bir "HTTPS yönlendirmesi" belirtmek zorundaydı.

Yine de, bazı istemciler https://ilk önce bir bağlantı kurmayı dener ve yalnızca http://başarısız olursa bağlanırlar . Bu daha güvenli bir davranış ve muhtemelen çoğu durumda varsayılan olmasa da , sitelerin kendilerini işaretlemesine izin veren örneğin HSTS var https://ve bazı siteler tarayıcıda önceden işaretlenmiş olabilir. (@Kicken'ın belirttiği gibi, teşekkürler!) Ardından, bu prosedürü uygulayan tarayıcı eklentileri (örneğin, Firefox için "Her Yerdeki HTTPS") var. Bu eklentiler https://güvenli bağlantılar sunan sitelerin listesiyle birlikte gelir ve bir kullanıcı http://ön tarafında protokolü olan veya olmayan böyle bir sitenin URL’sini girdiğinde , kullanıcıhttps:// Web sitesi yöneticisi, web sitesi için bir HTTPS yönlendirmesi ayarlamamış olsa bile, tarayıcı tarafından sürümü, web sunucusu tarafından değil.


6
HSTS , bir tarayıcının, işaretlenmiş siteler için doğrudan https'ye gitmesini sağlar. Bazı siteler varsayılan olarak tarayıcılarda önceden işaretlenmiştir.
kicken

Bunu yazıma ekleyeceğim, teşekkürler :) “Müşterilerin önce https denemesi mümkün” diyerek, ancak bunu daha açık hale getireceğim, haklısınız.
LukeLR

Bir saldırganın gerçekten güvenli olmayan bu ilk bağlantıyı koparabileceğine ve örneğin genel bir WiFi senaryosunda sizi sitenin https sürümünden başka bir yere yönlendirebileceğine dikkat çekmeye değer. HTTPS salt okunur bir saldırganın trafiğinizi okumasını engelliyorsa (kredi kartı numaraları), yönlendirme zarar vermez. Ancak HTTPS, sizi web tarayıcılarına bir tarayıcıdan yararlanan bir kişiye enjekte eden veya sizi biraz farklı bir URL ile sayfanın bir klonuna yönlendirmekten kurtarıyorsa, o zaman bu ilk güvenli olmayan bağlantı berbat ettiğiniz anlamına gelir.
Peter Cordes
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.