go - 将状态存储在 golang 二进制文件中
问题描述
我正在为机器上没有任何控制和互联网连接的客户端开发本地解决方案。
该解决方案将根据购买的许可证的允许请求(REST API 调用)数量进行货币化。因此,目前我们将请求计数存储在文件系统本身的加密文件中。但是这个解决方案并不完美,因为文件可以复制到某个地方,然后在请求配额结束时替换。此外,如果文件被删除,则需要支持人员进行手动干预。
我正在寻找一种将状态/数据存储在二进制文件中并在运行时更新它的解决方案(考虑以二进制文件本身更新的使用计数)
寻找更好的方法。
二进制文件也应该从之前存储的状态开始
有没有办法做到这一点?
PS我知道写入二进制文件不会解决问题,但我认为它会通过增加可以存储状态的位置的排列和组合的数量来增加难度,因为你可以更改可执行文件并不是一个常识如果有人试图弄乱系统,那将是寻找状态的最后一个地方(默默无闻的安全性)
解决方案
有没有办法做到这一点?
不。
(至少没有官方的、可移植的方式。当然您可以修改二进制文件并更改例如数据或 BSS 段,但这很难,依赖于操作系统并且不能解决您的问题,因为它与外部文件有相同的问题:您可以保留原始可执行文件并从该可执行文件重新开始。有些事情根本无法从技术上解决。)
推荐阅读
- azure - 如何将 ADO 板从一个组织迁移到另一个组织?
- gekko - 使用 APOPT 求解器而不是 IPOPT 运行 Gekko MPC 应用程序时出现问题
- html - 如何强制用户只上传一个 xlsx、csv 或 xls 文件,该文件有两列并且与我在前端需要的标题名称完全相同?
- javascript - 使用 JS 显示样式错误,但在 jsfiddle 中运行顺畅
- php - 如何在 Symfony 3 中集成 Botman(控制器和视图)?
- google-apps-script - 从谷歌表格中选定或单击的单元格启动特殊链接
- c - 贪心算法无法正常工作并且会错误地打印数字
- android - Android 应用程序:顶部屏幕中的空白
- reactjs - 高度:100% 未应用,网站缩小。如何将其设置为 Height: 100% using React + MUI
- node.js - 在 Sequelize getProducts 方法中查询