去除IE瀏覽器對SSL加密https網頁的警告
IE8在瀏覽SSL加密https網頁時,會彈出一個警告窗口,而且其選項的設置不符合常規習慣,很容易點錯,下面是有關的分析和處理方法。
在用SSL加密後,用https訪問原來的網頁時老出現一個警告:
"This page contains both secure and non secure items.
Do you want to display non-secure items?"
中文版是:
"此網站包含的內容將不使用安全的https連接傳送,可能危及到整個網頁的安全"
在出現這樣的提示,實在是太影響用戶交互。
大多數網友給的解決方案是:
在ie的「Internet 選項」中修改ie的設定,如前文IE瀏覽SSL加密https網站的設置。但是如果是一個對外的網站,你也不可能要求每個用戶都去改ie的設定,而且就算他們同意改,很多上網的用戶根本不知道去哪裡改。
所以通過修改ie設定的方式行不通,要找到問題的原因才能找到相應的解決辦法。
原因分析:
可能引起這個warning的原因,簡單歸納來說,不外乎是以下幾點:
1) hard-code了http(或其它非https)的URL訪問。
這是一個比較常見的問題,一般來說都不要在WEB頁面中硬編碼URL,可以採用相對URL。
2) WEB頁面中含有沒有設置SRC屬性的iframe元素。
這個也比較常見,解決也很容易,可以給每個空的iframe設置SRC屬性,這個src可以指向一個空的html頁面,或是採用src="javascript:void()"這種方式。
3) 調用removeChild()方法去移除一個HTML元素,而這個元素包含一個backgroundImage背景圖片的style引用。
這個嚴格來說,應該是IE的一個bug,可以在Microsoft官方網站上找到這個問題的描述和解決方案。不過即使是最新的IE8, 這個問題好像依然存在。
https://support.microsoft.com/kb/925014
4) 調用innerHTML()方法給一個HTML元素添加內容,之後再把這個元素添加到HTML DOM中。
這個問題可能在一些Ajax應用中會碰到,通過Ajax動態更新HTML內容,如果內容包含image圖片等等內容,也會彈出這個warning。
測試情況是
1. https的網頁中包含有非"https"的連接是不會出現警告,比如出現
a href="https://www.google.com">google/images/111.jpg
上面這兩個img中,
第一個img會提示警告,而第二個img不會提示警告。
2.iframe標籤中沒有設定src屬性,這樣是會出現警告,所以加上
src ="javascript:void(0)"是可以 解決問題。
3.至於remoceChild()和innerHTML這兩種情況沒有測試過。
4.還有一種情況網頁中有flash的
="https://---flash/swflash.cab
這樣的代碼也是會出現安全提示。
flash會提示錯誤,可能的原因,可能就是因為那兩個顯示的http的連接
解決辦法:
如果要避免出現警告信息,而且要兼顧安全性和體驗性。
建議:
1.需要用到內容加密的頁面才用ssl加密,不需要用到https的頁面不用https
2.把需要用到https的頁面獨立出來,比如登陸頁面,重要的信息頁面,在這個頁面的功能盡量簡單,減少出錯的機會。
3.少用js去操作
本文標題:去除IE瀏覽器對SSL加密https網頁的警告 - 真相網
這裡是你留言評論的地方
真相網
