Czy nazwa hosta w adresach URL HTTP (S) naprawdę nie uwzględnia wielkości liter?


16

Czy bezpiecznie jest używać http (s): //CompanyName.com/xyz jako URL (np. Do celów brandingu) bez żadnych zmian w konfiguracjach po stronie usługi?

Wiem, że DNS nie rozróżnia wielkości liter, ale czy nadal mogą wystąpić skutki uboczne? Mam na myśli np. Różne części łańcucha, które nie pasują do CompanyName.com ~ companyname.com:

  • Niektóre backendy mogą się nie zgadzać
  • Niektóre zapory równoważenia obciążenia / proxy / pamięci podręcznej / warstwy aplikacji mogą się nie zgadzać
  • Niektóre klienty mogą niewłaściwie stosować zasady tego samego pochodzenia
  • Niektóre klienty mogą nie pasować do sprawdzania certyfikatów
  • Chociaż DNS zasadniczo nie rozróżnia wielkości liter, czy nazwy IDN mogłyby zmienić obraz?

Czy ktoś doświadczył tych lub innych problemów z wielkimi literami w części adresu URL hosta?


[edytuj] @Michael Hampton wskazał, że zgodnie ze standardami HTTP w nazwie hosta nie jest rozróżniana wielkość liter, ale niektóre oprogramowanie jest w tym zakresie niezgodne.

Staram się zrozumieć, jak powszechne jest oprogramowanie niezgodne, w szczególności klienci. Zakładam, że wszystkie najnowsze główne przeglądarki są w porządku, ale co np. Z aplikacjami mobilnymi? (Czy powinienem lepiej podzielić to na osobne pytanie SF?) [/ Edit]


Firefox na przykład wysyła mały Hostnagłówek (przynajmniej tak pokazują mi jego narzędzia programistyczne), więc zakładając, że robią to wszystkie przeglądarki, nie powinieneś mieć problemu, nawet jeśli niektóre urządzenia na ścieżce do serwera nie lubią mieszanych liter nazwa hosta. curlz drugiej strony zachowuje przypadek podczas wysyłania nagłówka.

Odpowiedzi:


23

Tak, w nazwie hosta naprawdę nie jest rozróżniana wielkość liter, jak określono w RFC 3986 § 3.2.2 , ponieważ nazwy hostów w ogóle nie uwzględniają wielkości liter w DNS . Ten dokument RFC zawiera również zalecenia dotyczące unikania wspomnianych problemów:

Chociaż host nie rozróżnia wielkich i małych liter, producenci i normalizatorzy powinni używać małych nazw dla zarejestrowanych nazw i adresów szesnastkowych ze względu na jednorodność, a jedynie używać wielkich liter do kodowania procentowego.

Widziałem co najmniej jeden HTTP cache ( W3 Razem Cache ), które nie normalizują hosta w ten sposób, a kończy się buforowanie treści wielokrotnie, na przykład pod example.com, Example.Com, EXAMPLE.COM, itd.


1
Przynajmniej tak długo, jak najgorsze jest to, że zawartość jest buforowana wiele razy przez niezgodne pamięci podręczne, wydaje się, że można z tym żyć.
CVn
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.