https和http顯示混合內容


如果網站原本是http傳輸,在部署成https傳輸后,一不小心就會出現如下的安全提示:
 “This page contains both secure and non secure items. Do you want to display non-secure items?”
或者
 “此網站包含的內容將不使用安全的https連接傳送,可能危及到整個網頁的安全”

可能引起這個warning的原因,簡單歸納來說,不外乎是以下幾點:

1) hard-code了http(或其它非https)的URL訪問
        這是一個比較常見的問題,一般來說都不要在WEB頁面中硬編碼URL,可以采用相對URL。 但是也分情況:
<%String path = request.getContextPath()+"/images/logo.gif";%>
<img src="http://www.xxx.com/images/logo.gif"/>
<img src="<%=path%>"/>
上面這兩個img中,第一個img會提示警告,而第二個img不會提示警告。
 網頁中帶Object的,如最多使用的flash:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="549" height="130">
<param name="movie" value="<%=path%>/images/CNYSWF.swf" />
<param name="wmode" value="transparent" />
<embed src="<%=path%>/images/CNYSWF.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="549" height="130"></embed>
</object>
 不過這樣的代碼可以有避免措施,那就是將flash所對應的這個CAB手動部署在自己的網站上,提供https連接。 

2) WEB頁面中含有沒有設置SRC屬性的iframe元素
        這個也比較常見,解決也很容易,可以給每個空的iframe設置SRC屬性,這個src可以指向一個空的html頁面,或是采用src="javascript:void()"這種方式。
 注意,這個問題,在IE6下出現,IE8下不會出現。7和9沒測試。

3) 調用removeChild()方法去移除一個HTML元素,而這個元素包含一個backgroundImage背景圖片的style引用
        這個嚴格來說,應該是IE的一個bug,可以在Microsoft官方網站上找到這個問題的描述和解決方案。不過即使是最新的IE8, 這個問題好像依然存在。
        http://support.microsoft.com/kb/925014 

4) 調用innerHTML()方法給一個HTML元素添加內容,之后再把這個元素添加到HTML DOM中
        這個問題可能在一些Ajax應用中會碰到,通過Ajax動態更新HTML內容,如果內容包含image圖片等等內容,也會彈出這個warning。

當然,如果想通過修改IE的選項來顯示https和http混合內容,則在安全-〉自定義級的,“顯示混合內容”,選擇“啟用”。

以上內容引自網絡


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM