gpt4 book ai didi

c++ - 在 C++ 中创建一个只能由我的应用程序访问的文件?

转载 作者:可可西里 更新时间:2023-11-01 11:13:02 27 4
gpt4 key购买 nike

我正在为一个小型办公室开发一个应用程序来维护他们的货币账户。我的应用程序可以帮助创建一个可以存储所有信息的文件。但除我的应用程序外,用户不应访问它。为什么?因为有人可能会删除该文件,所有记录都将消失。环境是一台 Windows PC,具有一个具有管理员权限的帐户。我正在使用 MinGW 编译器在 C++ 中开发应用程序。关于如何创建这样的文件,我现在有点空白。有什么建议吗?

最佳答案

如果您的应用程序可以修改它,那么运行它的凭据下的用户也可以修改它,就是这样。此外,如果他拥有管理员权限,那么即使您的应用程序在不同的凭据下运行并且文件受 ACL 保护,您也无法阻止他删除内容。

现在,因为问题似乎不是安全问题,而是保护用户免受他自己的伤害,我只是将文件存储在一个足够“看不见”的位置,并且对此感到满意;将您的数据写入%APPDATA%\yourappname1,这样的目录专门用于用户特定的应用程序数据,用户不打算直接接触这些数据。

如果你想偏执一点,你可以启用你能找到的每一个安全设置(隐藏目录,在应用程序未运行时使用限制性 ACL 保护它,打开它进行独占访问,......),但如果你问我这只是浪费时间:

  • 普通用户(我们的目标 AFAICT)不会弄乱 appdata,因为它是一个隐藏的文件夹;
  • 乱搞的“高级用户”,如果下定决心搬起石头砸自己的脚(或自愿造成伤害),就会找到办法,因为在您的情况下安全设置很容易绕过(管理员可以取得任何文件并更改其 ACL,并使用 Unlocker 等应用程序来规避文件锁定);
  • 有合法理由访问该文件(例如,他必须备份/恢复文件)的技术人员会因所有这些无用的预防措施而感到沮丧。

  1. 您可以通过扩展相应的环境变量或通过 SHGetFolderPath/SHGetKnownFolderPath(或他们在新 Windows 版本中为它发明的任何替代品)来获取实际的 %APPDATA% 路径。

关于c++ - 在 C++ 中创建一个只能由我的应用程序访问的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19129377/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com