在Windows上,如何仅限某些应用程序(非用户)限制对文件夹,子文件夹和文件的访问

时间:2015-02-04 10:36:44

标签: windows filesystems access-control win32-process

我们有一个非每个用户的应用程序,可以同时使用我的多个用户,并且所有用户也共享数据。因此我们使用数据文件夹的路径是ProgramData \ OurAppName \ Data(发布Vista)并完全控制所有用户,以便我们运行的应用程序可以更改Data文件夹下的文件。

现在问题是,任何其他应用程序(恶意软件/病毒)也可以修改文件,即可以对我们的应用程序的数据文件进行攻击。我们的应用程序是Win32桌面应用程序。

我们是否可以将对Data文件夹的访问权限仅限于我们的应用程序?

1 个答案:

答案 0 :(得分:1)

Windows安全模型是按用户而非每个应用程序。因此,没有内置的方法来根据发出请求的应用程序来限制对文件的访问。

适当的解决方案是服务器程序(在实际服务器上运行,或作为本地计算机上的系统服务)具有对文件的独占访问权限(因为服务器程序将以不同的用户身份运行,因此可以正常运行) )并为客户端应用程序(最终用户运行的应用程序)通过服务器发出所有请求。然后,服务器可以审查请求,以确保它们在执行之前不具有破坏性。

可能的临时解决方案将包括一个系统服务,该服务将文件的访问权限分配给您的应用程序(通过句柄复制)或文件系统筛选器驱动程序。这些方法可以很容易地被绕过,但可能足以应对未针对您的应用程序专门针对的常见病毒。