WinJS.strictProcessing()做什么?

时间:2012-06-23 20:30:45

标签: microsoft-metro winjs

WinJS.strictProcessing()做什么?

MSDN的解释不是很有用 - http://msdn.microsoft.com/en-us/library/windows/apps/hh987021.aspx

1 个答案:

答案 0 :(得分:2)

它打开了一个安全功能。场景是这样的:

  1. 应用程序从网上下载HTML(例如,通过XHR),包括data-win-control,data-win-options或data-win-bind属性
  2. HTML已添加到DOM
  3. 在该HTML上调用WinJS.UI.processAll或WinJS.Binding.processAll
  4. data-win- *属性指定被欺骗调用eval(或同样邪恶的东西)的函数
  5. 用户的应用程序已拥有
  6. 当打开strictProcessing模式时,只能从标记中调用显式标记为声明处理安全的函数。这减少了可以显着调用的函数的表面区域,并减少了需要进行安全性审查的应用程序区域。

    最重要的是,WinRT或eval函数都没有这么标记,所以你不能直接下载HTML来调用WinRT(之前,你可以)。

    默认情况下,此模式未在RC中打开,以便让应用开发人员有时间在代码被破坏之前调整代码,但默认情况下,这种行为很可能会在RTM中启用。