2010-01-26 70 views
2

我知道这是一个巨大的安全漏洞,在浏览器中使用JavaScript脚本.Filesystemobject。我听说有传言说MS正在锁定最新版Office中的这个漏洞。这对于我正在开发的企业Web应用程序来说是个坏消息,它具有一些依赖于访问Scripting.Filesystem对象的关键功能,如写出XML文件或移动音频文件。Scripting.Filesystemobject filemove,writefile不能在IE浏览器中使用javascript(解决方法,doc?)

我已经尝试过但没有找到关于此的任何“硬”文档,而当我的本地开发框展示此行为时,其他人的计算机(除IE之外没有最新版本)不会显示行为。如果任何人都可以指向我确认这一点的文档 - 或者一个不涉及创建activeX控件的解决方法 - 我将非常感激。

谢谢!

回答

-2

出于合法或非法的原因,您不会,也不应该有史以来通过浏览器访问用户文件系统。

访问本地存储的最好例子是通过Google Gears这样的系统完成的,甚至这些系统经常被网页/瘦客户端纯粹主义者反对。

+0

altCognito,我知道这一点。我没有设计这个应用程序,在这个演出中进入它。只是寻找可行的临时解决方案,而我们“真正做到”。感谢谷歌齿轮的提示。 – Alexx 2010-01-26 15:12:55

+0

永不言败。并非所有的浏览器应用程序都在Web服务器上运行,或者在防火墙之外。 (不,这不是我谁低调你的答案。) – Mike 2011-04-02 00:11:30

1

这篇文章kb240797讨论IE杀死位。在注册表中,你会发现这个键: -

HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Internet Explorer \的ActiveX兼容性

下,你会发现一组的CLSID(FileSystemObject的的CLSID为:{0D43FE01-F093- 11CF-8940-00A0C9054228})。如果“兼容性标志”值的位1024(0x400)(kill bit),则activex组件被阻止。

我也听说MS已经或正在计划杀死FileSystemObject,但我没有正式看到这一点,并且在我目前的系统上并非如此。然而,这可能是因为他们可能会内心地阻止它,即使用这个杀手位摆弄也无济于事。

+0

谢谢安东尼!我以前检查过这个,HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Ext \ Stats \ {0D43FE01-F093-11CF-8940-00A0C9054228} \ iexplore下唯一的“Flags”值是“Flags”并设置为0。在整个注册表中搜索与该CLSID有关的所有条目,但没有找到任何“兼容性标志”条目。我觉得特别有趣的是我不能写新文件,但是如果我试图移动现有文件(用AX组件创建),先前的公理会导致我的文件消失(因为它从它的位置移动而不是移动到新的一个)。 – Alexx 2010-01-26 15:19:50

+0

你确定你没有吠叫错误的树吗?听起来像一个普通的旧文件权限问题给我。 – AnthonyWJones 2010-01-26 16:01:53

+0

这可能是,我是管理员在箱子上。所有这些东西在安装更新之前都有效,这是我最大的线索,它不是权限。我尝试回滚更新,但这只是真的搞砸了。 – Alexx 2010-01-26 16:26:54

0

我不知道这是否有帮助,但我没有听到FileSystemObject被弃用的内容。我很想看到你的消息来源。另外需要注意的是,最后一个“主要”ActiveX控件由于存在安全风险而被弃用,这是CAPICOM,但这是随Vista的发布而宣布的,最终在Windows 7中被删除。文档也被更改为反映这种弃用和建议提前做好选择。

很多(很多!)shell脚本依靠FileSystemObject进行文件操作,所以我很难相信它会被弃用而没有提供替代方案。如果它有所不同,FileSystemObject仍然可以从IE引擎上运行的Windows桌面小工具访问。

+0

请参阅江先生的意见 http://social.msdn.microsoft.com/Forums/en/iewebdevelopment/thread/27092b49-7d3e-4d86-9ffb-223a26037c3f – Alexx 2010-05-21 16:44:42

+0

@Alexx:的确,这很有趣,很高兴你找到了你的问题的答案。下次有ActiveX相关问题时,我会尽量做更多帮助;-) – 2010-05-21 19:24:05