什麼是IE中的保護模式(protected mode)
保護模式是從Windows Vista中引進的一個新的安全控制機制。它將作業系統中執行的程序(process)和物件(比如登錄檔,資料夾)進一步劃分了安全等級。有3個級別(High, Medium, Low),如果一個Low安全級別的程序(比如一個IE程序)要往具有Medium級別的物件上寫東西,就會被Access Denied掉。即使執行程序的賬戶具有往物件上寫東西的許可權,在保護模式下一樣會被Access Denied掉,因為作業系統會先做保護模式下的安全審查,再做檔案屬性上的安全審查。
另外,由一個具有Low級別的程序產生的子程序也具有Low級別。
保護模式是對zone的補充,所以zone
拿我們現在的例子來說,當用戶點選列印報表的時候,IE程序會先載入print control, 這個control會再呼叫spool service.exe,通過spool service的幫忙來開啟印表機視窗。IE如果開啟了保護模式,就會執行在Low級別。IE程序呼叫的spool service.exe也就執行在了低級別,一個Low級別的程序是無法獲得Medium或High級別物件的write權利的,於是我們就看到了錯誤。下面的內容是我從你們出錯的日誌裡拿出來的:
2011-02-25
13:15:28
13:15:28.0591302
spoolsv.exe 1596
RegOpenKey HKU/S-1-5-21-1575878230-2625628130-970249512-61800
Spoolsv.exe雖然是執行在本機的System賬戶下,而且這個賬戶的確具有對HKU/s-1……這個登錄檔的寫許可權,但由於保護模式打開了,它會被保護模式先檢查,於是它被降級了,只有Read許可權了,所以就報錯了。請注意,一個程序希望獲得某個物件上的Write許可權並不意味著這個程序一定會去Write些什麼,就像每個人有建立google郵箱的權利但並不是每個人都會去建立。
如果勾上保護模式,肯定比不勾更安全,但同時也要做出犧牲,那就是善意的程序也會被封殺掉。因為有些程序它就是需要獲得某些物件上的