0

WinJS.strictProcessing() 做什么?

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

4

1 回答 1

2

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

  1. 应用程序从 Web(例如通过 XHR)下载包含 data-win-control、data-win-options 或 data-win-bind 属性的 HTML
  2. HTML 被添加到 DOM
  3. 在该 HTML 上调用 WinJS.UI.processAll 或 WinJS.Binding.processAll
  4. data-win-* 属性指定被欺骗调用 eval (或同样邪恶的东西)的函数
  5. 用户的应用程序已拥有

当 strictProcessing 模式打开时,只有明确标记为可安全进行声明性处理的函数才能从标记中调用。这大大减少了可以调用的函数的表面积,并减少了您的应用程序需要进行安全审查的区域。

最重要的是,没有一个 WinRT 或 eval 函数被如此标记,所以你不能下载 HTML 来直接调用 WinRT(以前,你可以)。

此模式在 RC 中默认未打开,以便应用程序开发人员有时间在代码被破坏之前调整其代码,但此行为很可能在 RTM 中默认打开。

于 2012-06-24T06:24:18.233 回答