沙盒Javascript执行在一个互联网资源管理器扩(BHO)
-
19-09-2019 - |
题
Firefox有的沙盒和evalInSandbox().铬沙盒执行他们的脚本内容(它们叫它孤立的执行)。我在寻找同样的事情在即浏览器的扩展。
我可以载javascript文件,然后打电话给evalScript(),但码的执行在相同的环境中javascript上存在的页。我需要一个运行方式我的图书馆(其中包括和基于jQuery)在沙盒/孤立的环境,但仍然允许它修改DOM,如果它们在运行的网页。
Jint看起来很有希望,但目前不能评估!(他们可以分析它。)
我怎么可以这样做?
解决方案
看起来就像你正在坐这一个。
- 一些Microsoft人说,即不提供这种功能
- 一些人说,他们已能够把这拿着它靠近,并保护它作为他们的秘密武器
- "专业",即扩展商店,当联系有关的建筑是什么你都在谈论打开了工作
我真希望我有更好的消息,但它看起来像它可能需要一个小小的奇迹来完成你在找什么...或许很多钱。:)
你最好的选择,可能要寻找一个少数人权利要求,他们已能够做到这一点,并支付他们的很多分享秘密或重新考虑为什么你真的想要什么你想看看如果你不能完成它的另一种方式。
其他提示
您可能会发现它值得看的Microsoft Web Sandbox中的Live实验室: http://websandbox.livelabs.com/
和虽然它更完全成熟和相关的混搭像它可能为你指明正确的方向。
事情你正在寻找是ActiveScript引擎(http://en.wikipedia.org/wiki/Active_Scripting)
我找不到任何有用的链接,现在,MSDN仅包含的接口定义(http://msdn.microsoft.com/en-us/library/ccd0zt2w(v=与85).aspx) 尝试谷歌"的活动脚本"(不"行动脚本"!)
你需要实现接口IActiveScriptHost在你的扩展,创建一个目的"JScript",呼SetSite,并通过你主持对象,然后你可以载你js码进入这个发动机和运行。
这种技术是一个相当困难,由于缺乏有关文件。如果你还感兴趣在这,我可以给你一些实例在C++/ATL。
您可以在您的目标详细一点?
我不认为你已经清楚地定义你要完成的任务。如果您的代码修改页面的DOM的能力,那么有效的是的页面的上下文中执行。它可以创建新的脚本块来执行任何不安全或不可靠的行动,它可以完成了它在同一个执行环境中操作。
IE不提供一个功能,你要问什么,我不相信,Firefox和Chrome功能的工作,你希望他们做的方式。