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

标签 windows filesystems access-control win32-process

我们有一个应用程序,它不是针对每个用户的,可以同时供多个用户使用,数据也由所有用户共享。所以我们使用数据文件夹的路径是 ProgramData\OurAppName\Data(post Vista),并赋予所有用户完全控制权,以便他们运行的我们的应用程序可以更改 Data 文件夹下的文件。

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

无论如何,我们是否可以将对数据文件夹的访问限制为仅我们的应用程序?

最佳答案

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

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

可能的临时解决方案包括将文件访问权交给您的应用程序的系统服务(通过句柄复制)或文件系统过滤驱动程序。这些方法可以很容易地被绕过,但可能足以抵御并非专门针对您的应用程序的常见病毒。

关于windows - 在 Windows 上,如何限制仅某些应用程序(而非用户)对文件夹、子文件夹和文件的访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28319188/

相关文章:

windows - 批处理文件中的错误处理

c - 如何访问符号链接(symbolic link)的 ctime、mtime、...?

php - 如何在脚本过程中管理多个错误

c++ - 覆盖运算符<<时的友元问题

linux - 防止受 seccomp 保护的进程的子进程具有相同的 seccomp 保护?

windows - 在 PowerShell 或 cmd 中读取环境变量会产生不同的结果

c++ - Protocol Buffer - 生成非内联访问器

windows - 批处理文件以将文件夹移动并重命名为相对路径

windows - os.listdir() 显示文件实际上不在 Python 和 Windows 的文件夹中

authorization - 基于权限的集合过滤