2012-06-23 51 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

如果恶意代码已经存在于您的应用程序包中,则无论如何您都会触发。这是可以的,因为它到达的唯一途径就是你在建立包装时把它放在那里。这是有关防止下载的内容,你*不*放入包,从运行任意代码。 –