问题是我需要在两个程序之间共享文件,但我不希望计算机用户和这两个程序之外的其他程序可以访问这些文件。所以文件的流程是这样的:程序A(我会自己编码(从互联网上收到一个文件,并放在电脑上的某个地方。然后程序A调用程序B(我没有对其进行编码,也无法更改(。程序B读取下载的文件并用它做一些事情,然后产生另一个文件,程序B也将其放在计算机上的某个地方。然后程序A读取该文件并将其上传到互联网。
我的发现我认为Windows Sandbox可能很有趣,但Windows Sandbox的问题是它只适用于Windows 10 pro和Windows 11,而且它是虚拟化的,性能对程序B非常重要……所以任何虚拟化软件都不太可用,除非它接近本机性能。
对于Linux,我发现了FreeBSD监狱。但这似乎更侧重于禁止监狱中的应用程序访问监狱外的文件,而不是禁止监狱外的程序读取和写入监狱中的文件。所以实际上我需要相反的。。。
另一个有趣的概念是像Linux中的mmap一样将文件存储在RAM中,但由于我不能更改程序B,我不知道如何实现。是否有某种容器应用程序封装程序B的IO并将其重定向到RAM中的文件?
有人有什么建议吗?谢谢
如果您将文件存储在计算机的用户/所有者的磁盘上,则无法真正阻止他们读取文件。你可以尝试让访问内容变得更加困难(DRM就是这样做的(,但最终你——用户——只要有足够的动机和资源,就可以绕过你的控制。即使您将文件纯粹存储在RAM中,具有管理权限的用户也可以转储程序的内存,并从中提取文件。