%20URL%20%E7%9A%84%E4%B8%BB%E6%A9%9F%E5%90%8D%E7%A8%B1%E9%83%A8%E5%88%86%E7%9C%9F%E7%9A%84%E4%B8%8D%E5%8D%80%E5%88%86%E5%A4%A7%E5%B0%8F%E5%AF%AB%E5%97%8E%EF%BC%9F.png)
在不對服務端配置進行任何更改的情況下使用 http(s)://CompanyName.com/xyz 作為 URL(例如用於品牌目的)是否安全?
我知道 DNS 不區分大小寫,但還會有副作用嗎?我正在考慮例如鏈的各個部分未能匹配 CompanyName.com ~ companyname.com:
- 某些Web後端可能無法匹配
- 某些負載平衡器/代理/快取/應用層防火牆可能無法匹配
- 某些客戶端可能會錯誤地應用同源策略
- 某些用戶端可能無法在憑證檢查中匹配
- 雖然 DNS 通常不區分大小寫,但 IDN 可以改變這種情況嗎?
有人在 URL 的主機名稱部分遇到這些或其他大寫問題嗎?
[編輯] @Michael Hampton 指出,根據 HTTP 標準,主機名稱不區分大小寫,但某些軟體在這方面不相容。
我試圖了解不合規軟體(尤其是客戶端)的普遍程度。我認為所有最新的主要瀏覽器都很好,但是例如行動應用程式呢? (我應該更好地將這個問題分成一個單獨的 SF 問題嗎?)[/edit]
答案1
是的,主機名稱確實不區分大小寫,如中指定的RFC 3986 § 3.2.2, 因為DNS 中的主機名稱通常不會區分大小寫。此 RFC 還提供了有關如何避免您提到的問題的建議:
儘管主機不區分大小寫,但為了統一起見,生產者和標準化者應使用小寫字母表示註冊名稱和十六進位位址,而僅使用大寫字母表示百分比編碼。
我至少見過一個 HTTP 快取(W3 總緩存) 不會以這種方式標準化主機名,並最終多次快取內容,例如在example.com
、Example.Com
、EXAMPLE.COM
等下。