有很多軟體是通過修改IE的代理設定來實現下載加速,或者翻牆的,比如馬鈴薯視頻加速器和Chrome的翻牆外掛程式Proxy Switchy。但是,這個簡單的修改會帶來一些意想不到的問題。比如,如果網頁中有IFrame,涉及到一些跨域的訪問,就可能會有問題。
IE會根據Proxy的設定來識別一個網站到底是Intranet還是Internet。
The Local Intranet Zone and Proxies: The Surprising Connection
http://msdn.microsoft.com/en-us/library/bb250483(VS.85).aspx
從不同地方發起的URL請求可能導致Zone識別錯誤
If you configure Internet Explorer 6 to use a proxy autoconfiguration (.pac) script, URLs may be identified as being in the Internet zone instead of as being in the local intranet zonehttp://kbalertz.com/946240/configure-Internet-Explorer-proxy-autoconfiguration-identified-being-Internet-instead-being-local-intranet.aspx
像馬鈴薯加速器這樣的軟體,其代理配置指令碼是針對URL進行分析,只對包含視頻的URL使用代理的,其它則直接放過(DIRECT)。因此,在開啟馬鈴薯加速器的情況下,一個本來應該屬於Internet Zone的網頁在第一次訪問時會被IE誤認為是Intranet Zone。但在第二次訪問時,因為緩衝所以並不產生網路訪問,所以IE又認為是Internet Zone。 很顯然,在是否開啟馬鈴薯加速器和是否存在緩衝的不同情況下,一個網頁或者說URL對應的Security Zone是不同的。不同的Security Zone其安全控制是不同的,Internet Zone是Medium,而Intranet Zone是Medium-Low。
如果一個頁麵包含跨域的內容,在前面不同情況組合的切換下,是否會帶來訪問錯誤呢?
關於跨域指令碼安全
About Cross-Frame Scripting and Security
http://msdn.microsoft.com/en-us/library/ms533028(VS.85).aspx
About URL Security Zone Templateshttp://msdn.microsoft.com/en-us/library/ms537186(VS.85).aspx