不让浏览器启动本地应用程序的充分理由
我知道这可能很容易,但是请继续阅读。
我还知道,即使在Intranet上下文中,让浏览器运行并与本地应用程序交互也通常不是一个好主意,也许是最坏的主意。
我们将Citrix用于家庭办公,人们真的很喜欢它。现在,他们希望使用相同的环境,一个漂亮的页面,每个重要的应用程序/文档/文件夹都以有序的方式很好地排列和分类。这些人不是特别精通技术。我什至不考虑他们可以理解远程交付的应用程序与本地交付的应用程序之间的区别。
因此,有人问我是否可行。当然,使用IE的ActiveX控件就可以了。我什至制作了一个可以工作的原型(那是很痛苦的地方)。
但是现在,我对此表示怀疑。即使在"本地Intranet"区域中,允许这种"危险的" ActiveX控件不是疯狂的做法吗?人们将使用相同的浏览器浏览网络,我可以完全相信IE吗?微软是否不会在将来的更新/版本中禁用这些控件?如果一个网站或者任何种类的恶意软件只是将另一个网站放到信任列表中怎么办?通过这种程度的控制,我们还可以卸载所有保护,然后运行amok,直到被IT部门吊死。
我将要面对上司,即使他们认为这是可行的,这也是一件非常糟糕的事情。因此,我非常需要好的和强有力的论据,因为"让我们不要"不会这样做。
当然,如果没有什么可害怕的,那也很好。但我对此深表怀疑。
解决方案
回答
We use Citrix for home-office, and people really like it. Now, they would like the same kind of environment at work, a nice page where every important application/document/folder is nicely arranged and classified in an orderly fashion
我没有使用Citrix很多次,但是与执行本地应用程序有什么关系?我完全看不到"像Citrix这样的人"和"浏览器执行本地应用程序"之间的关系吗?
如果人们要在家中访问Citrix服务器,并希望在办公室中获得相同的体验,请购买一台便宜的PC,然后运行与家用计算机上完全相同的Citrix软件。将这台计算机放在角落,并告诉他们去使用它。他们会很高兴的。
Isn't it madness to allow such 'dangerous' ActiveX controls, even in the 'local intranet' zone ? People will use the same browser to surf the web, can I fully trust IE ?
这样说。 IE具有对AX控件的内置支持。它使用它的安全机制来阻止它们运行,除非在受信任的站点中运行。默认情况下,完全不信任任何站点。
如果我们完全使用IE,那么我们将受这些安全机制的约束。我们是否要告诉它信任本地Intranet都不在话下,并且不会影响任何其他区域的运行。
不管我们是否在本地Intranet中允许ActiveX,当MS发出补丁程序时,要求我们每隔几周重新启动计算机的旧安全漏洞将继续存在并导致问题。
Isn't there a risk that Microsoft would just disable those controls in future updates / versions ?
从XP-SP2开始,Microsoft使得使用ActiveX控件的难度越来越大。我不知道这些天我们必须单击多少才能使它们运行,这些警告消息看起来很吓人,并且显示"这可能会破坏计算机"对话框,但是它的确很多。随着时间的推移,这只会变得更糟。
回答
微软走的很好。一方面,他们会定期通过Windows Update发送ActiveX杀伤对象,以删除/禁用行为异常的应用程序。另一方面,Sharepoint 2007的最新版本(不能代表较早的版本)允许通过单击浏览器中的链接来打开Office文档,并在本地应用程序中对其进行编辑。编辑完成后,更改将发送回服务器,并且网页(通常)会刷新。这只是IE,因为Firefox会抛出错误消息。
不过,我可以看到其背后的逻辑。在Microsoft将所有应用程序"存储在云端"之前,有些情况需要弥合旧客户端应用程序与更以Web为中心的商业环境之间的鸿沟。尽管可能存在非Web解决方法,但越来越多的信息工作者开始期望他们的大部分工作将在浏览器中完成。任何使与桌面集成更容易的事情都不会被sysadmins以外的任何人所反对。
回答
The standard citrix homepage (or how we use it) is a simple web page with program icons. Click on it, and the application get's delivered to you. People want the same thing, at work, with their applications/folders/documents. And because I'm a web developer, and they asked me, I do it with a web page... Perhaps I should pass the whole thing over to the VB guy..
啊...我知道有两种方法可以做到这一点:
我们可以将Internet Explorer嵌入到应用程序中,然后将其挂钩并拦截某些类型的URL,依此类推。
几年前,我看到它本身就是一个嵌入了Internet Explorer的电话应用程序,并加载了一些特殊格式的网页。
在网页中是这样的:
<a href="dial#1800-234-567">Call John Smith</a>
通常,这将是一个损坏的URL,但是当用户单击此链接时,包含嵌入式IE的应用程序将收到通知,并继续执行其自己的自定义代码以从URL拨打该号码。
我们可以让VB来编写一个应用程序,该应用程序基本上只是包装IE,并具有用于执行应用程序的处理程序。然后,我们可以使用链接到打开的应用程序的普通网页来编写代码,然后VB应用程序将启动它们。这使我们可以将自己的安全性内容(例如,仅在预设列表中启动应用程序等)写入VB应用程序,并且由于VB是在启动它们而不是IE,因此不会涉及IE安全问题。
第二种方法是使用浏览器插件。
例如,skype附带了一个Firefox插件,该插件在网页中查找电话号码,并在其上添加特殊链接。当我们单击这些链接时,它会调用Skype,我们可以想到可以执行类似的操作来启动citrix应用程序。
然后,我们将被绑定到Firefox。为IE编写插件要比为FF编写插件难得多,除非被迫,否则我不会走这条路。