自动取消阻止从网站下载的可执行文件

时间:2017-09-07 07:40:06

标签: asp.net windows web windows-security

我有一个网站(intranet),允许您下载用ASP.NET编写并使用https的可执行文件(当前是.Net控制台应用程序)。

然而,在许多机器上,我无法在下载后立即运行它 - 我需要右键单击它,转到Properties并点击Unblock这使得使用此应用程序感到不舒服(用户)通常必须下载这个可执行文件并运行 - 每次它都是一个新的,因为它是代码生成的)

有没有办法让这个可执行文件自动解除阻止?修改客户端计算机不是一个选项,但我可以对服务器执行任何操作。

从一开始我就认为这是不可能的,因为它是一种安全保护,但Chrome以某种方式做到了这一点。如果我安装了安装了IE的新PC,请在Chrome中键入Chrome并安装它 - 我不必解锁可执行文件。

到目前为止,我仅在W10 Chrome和IE上对此进行了测试,但我很确定旧的Windows版本也存在这个问题。

2 个答案:

答案 0 :(得分:2)

显示不受信任的可执行对话框的机制基于备用数据流。当您从网络源下载内容时,Windows或浏览器会添加元数据,因此您的文件/网络服务器无法影响此行为。另一方面,Windows有一个规则集,用于应用可以在Internet选项的TrustZone设置中找到的标志。

NTFS有一个简洁的小功能,允许文件有多个内容,也称为备用数据流。这是仅NTFS功能,因此您无法在其他分区类型上找到它。这基本上允许您在文件中存储更多数据,这些数据不会被用户看到,并且标准的Windows用户无法轻易找到。 Windows使用这些备用数据流来标记文件的来源,尤其是从内部网或内部网下载时。用于此数据的备用数据流称为" Zone.Identifier"并将ID保存到从中复制文件的区域。当您决定信任某个文件时,您基本上会告诉Windows删除该数据流。

Windows使用不同区域的概念对这些文件进行分类。 Windows总共知道四个区域:Internet,Intranet,可信站点和受限站点。您可以在选项卡" Trust Zone"

中更改Internet选项对话框中的设置和规则。

安全备注:在更改公司中信任区域的设置之前,请考虑此三次的安全风险。因为它将允许执行来自那些经过验证的源的任何可执行文件,所以可能会为已经被感染的PC或用户自己启动的可执行文件铺平道路。

答案 1 :(得分:1)

解决该问题的正确方法是使用受信任且有效的code signing certificate签署该可执行文件,最好使用EV(扩展验证)。 Windows将在您运行该文件时检查证书,并允许它在没有进一步操作的情况下运行,因为它使用受信任的证书进行签名。