2010-07-19 136 views
3

如何檢測客戶端瀏覽器是否支持SSL?我沒有將 指向服務器變量HTTPS_ *。如果瀏覽器沒有SSL支持,我希望能夠確定 。檢測SSL瀏覽器支持

P.S.我知道這是可能的,因爲該公司(http://www.cyscape.com) 有一款產品甚至可以在您從 瀏覽器選項中取消選擇SSL支持時檢測到。

回答

1

所有瀏覽器都支持SSL(句點)。沒有人會釋放無法使用的瀏覽器。 HTTPS是安全性要求,除了OWASP A3:破壞性認證和會話管理。

+0

除了當然爬蟲和其他類型的機器人可能沒有:) – blowdart 2010-07-19 20:07:12

0

雖然檢查服務器是否支持SSL連接相對比較容易,但檢測瀏覽器是否支持SSL連接卻非常困難。該解決方案可能需要客戶端瀏覽器擴展,該擴展實現了搜索瀏覽器配置或SSL支持的版本信息所需的邏輯。這個問題變得更加困難,因爲擴展需要與多個瀏覽器一起工作。

如果您沒有無法通過SSL連接到特定頁面的訪問者,那麼您通常可以使用服務器端方法,例如將它們重定向到他們被通知SSL要求的登錄頁面,或者您可以只是拒絕他們的網絡請求。

+0

而且正如Rook所說,假設目前使用的大多數瀏覽器都支持SSL是合理的。如果他們不這樣做,肯定有方法可以拒絕訪問站點,包括服務器端和客戶端。 – 2010-07-19 20:10:06

0

如前所述,現代Web瀏覽器沒有理由默認禁用SSL。

在SSL級別,當您向瀏覽器提供https鏈接時,服務器是否會收到連接?

在HTTP級別,您可以嘗試通過HTTP分配會話cookie的各種方案,然後通過僅可通過HTTPS訪問的鏈接更新一些會話變量。或者你可以在cookie上設置「安全」屬性,並查看瀏覽器如何處理它。

您可以嘗試JavaScript方法並檢查window.location屬性,或者只是嘗試將其設置爲https鏈接。 (或者使用LiveConnect嘗試一些Java功能或者使用Flash做類似的事情。)

這個問題有特定的動機嗎?如果您試圖確定SSL支持瀏覽器,出於某些奇怪的原因沒有啓用SSL,那麼cookie或JavaScript方法應該沒問題。如果您正在嘗試確定敵對瀏覽器的SSL支持(例如,不遵循robots.txt的殭屍工具),或者您有更多理由不信任JavaScript等客戶端檢查,那麼檢查SSL可能沒有用處解決方案,或者您可能需要深入瞭解SSL握手是否與普通瀏覽器不同。

0

檢查客戶端是否支持SSL將受到中間人攻擊,其中活動的網絡攻擊者獲得對用戶連接的控制權並使其看起來好像客戶端不支持SSL。

在開發針對可能不支持真實SSL的舊手機(它們支持WAP-TLS)的移動網站時,最經常會問到這個問題。這個類別的手機數量持續萎縮,我的建議是忽略它們,甚至可能會將其用戶代理列入黑名單。