应用程序可以读取文件,但用户应用程序在无法读取文件的情况下运行

应用程序可以读取文件,但用户应用程序在无法读取文件的情况下运行

是否可以设置文件的权限,以便用户无法复制该文件(无读取权限),但该用户下运行的应用程序可以读取该文件?

我认为不是,但我不是 100% 确定 - 为了使应用程序能够读取它,运行它的用户必须具有读取权限?

也许可以使用 Windows 策略来设置这样的事情?

答案1

由于应用程序将以用户权限运行,因此如果用户无法读取该文件,应用程序也将无法读取该文件。

您可以尝试设置一个进程,代表运行应用程序的用户模拟另一个用户,该用户可能具有不同的权限。这将需要相当多的工作,并且根据您如何实现这一点,您无论如何都会授予用户该权限,因为他只需查找用于模拟的凭据即可。

另一种方法是检查用户是否无法列出包含该文件的目录的内容。由于用户仍然拥有该文件的读取权限,因此仍然可以打开该文件。这种方法只会朦胧访问而不是阻止它!

答案2

这取决于用户的技术水平。如果他/她受过良好的教育,那么答案是 - 不,但你可以使用各种模糊技巧来“阻止”用户看到实际文件的内容,而这些内容可以通过你的程序访问。最简单的混淆方法是使用替代数据流(ADS)位于 %AppData% 的某处

您能否解释一下您想要实现什么?也许我们可以向您建议更好的解决方案

答案3

如果用户在没有管理权限的情况下运行该应用程序,则该应用程序将无法访问该文件。

如果用户以管理员身份运行应用程序,则程序可以访问文件,而用户则不能。请注意,以管理员身份运行的应用程序拥有更多权限,这可能不切实际。

更好的方法是隐藏文件或以不同的方式存储它,这取决于应用程序的功能以及您对其访问文件的方式的控制程度。

例如,您可以将数据本身存储在网络上的数据库中,或者进行服务器-客户端通信,其中服务器将文件传输到客户端,客户端显示它并在完成后删除副本。本质上,这可能和网络服务器一样简单。请记住,如果用户打开文件,他们可以存储它,然后他们就可以访问它。显示嵌入在网页中的文件可以防止这种情况发生。

相关内容