2012-06-23 46 views

回答

2

它打開安全功能。該方案是這樣的:

  1. 應用從網絡(通過XHR例如)下載HTML,其包括數據雙贏的控制,數據雙贏的選項,或數據贏綁定屬性
  2. 的HTML是添加到DOM
  3. WinJS.UI.processAll或WinJS.Binding.processAll被稱爲對HTML
  4. 數據-WIN-*屬性指定被騙調用的eval函數(或一些其他類似的邪惡)
  5. 用戶的應用程序是擁有

如果打開strictProcessing模式,則只能從標記中調用明確標記爲聲明式處理安全的函數。這可以減少可以顯着調用的函數的表面積,並減少需要進行安全審查的應用程序的面積。

最重要的是,沒有任何的WinRT或者eval函數都是如此顯着,所以你可以不獲取下載HTML直接調用的WinRT(之前,你可以)。

這種模式是默認不RC打開給應用程序開發者的時間,他們得到破前調整自己的代碼,但這種行爲將是最有可能在默認情況下RTM上。

+0

如果僅僅是MSDN清晰和簡潔爲你的答案..謝謝! :) +1 –

+0

什麼防止惡意代碼指定'myEvilFunction.supportedForProcessing = true;'? – bugventure

+0

如果惡意代碼已經存在於您的應用程序包中,則無論如何您都會觸發。這是可以的,因爲它到達的唯一途徑就是你在建立包裝時把它放在那裏。這是有關防止下載的內容,你*不*放入包,從運行任意代碼。 –