无需修改库即可移植到WinJS

时间:2014-04-25 16:37:03

标签: winjs

有没有办法在不修改库的情况下将现有HTML5应用程序移植到WinJS?浏览每个库并使用execUnsafeLocalFunction包装innerHTML调用是一个非常糟糕的黑客攻击。

我可以将基页加载为不安全的一些方法吗?在iframe中加载所有内容只是显示一个空白框。

1 个答案:

答案 0 :(得分:1)

如果您使用if-appx-web将right context放入iframe,那么您应该能够使用iframe:

<iframe src="ms-appx-web:///path/to/iframe.html"></iframe>

缺点是你无法从那里获得WinRT API。不幸的是,没有办法选择性地禁用部分SafeHTML。虽然你可以通过做一些黑客替换HTMLElement.innerHTML全局禁用它,以便它隐式调用execUnsafeLocalFunction,这也会打开脚本注入攻击,这可能导致你的应用程序被拒绝从商店。

另一种选择是将根页面实际导航到Web上下文中:

window.location.href = "ms-appx-web:///path/to/iframe.html";

我相信你可以将一个不可见的iframe返回到本地上下文(ms-appx),并根据需要使用postMessage API跨越边界进行通信。