c# - 如何保护 App.Config 窗体应用程序?
问题描述
我有一个 Windows 窗体应用程序,我想尝试出售。
为了工作,应用程序需要从在线 API 服务 X 生成的 ApiKey 和 ApiSecret。
我的想法是:
想要购买应用程序的人,在我的网站上注册,在那里插入他们的个人详细信息,包括之前从服务 X 生成的 ApiKey。
一旦我收到他们的数据和付款,我就会创建一个软件的个人版本,该软件在程序的 App.config 中内置了 ApiKey,然后我将它的编译版本 (.exe) 发送给他们。
一旦他们收到他们的程序,他们将插入 ApiSecret 并使用它,ApiSecret 将保存在 App.Config 中,并且只有当两者匹配时才允许用户访问服务 API。
这种推理适合这种应用吗?
我还希望 ApiKey 是 Integrity 安全的:我不希望拥有该程序版本的人能够更改 ApiKey 并将其传递给尚未支付服务费用的其他人。
(我应该使用加密吗?,如果是,如何?),
我认为一旦被用户保存的 ApiSecret 也应该被加密,以避免人们找到程序版本来访问未经身份验证购买应用程序的用户的服务。
我怎么能保证这个属性?而且,我正在解决所有这些问题,因为我已经读过可以从 .exe 文件访问 App.Config 的部分内容,这真的有可能吗?
该应用程序还有一个数据库,我是否也应该在 App.config 中加密连接字符串?
解决方案
推荐阅读
- ruby-on-rails - Bundler 拒绝使用正确的 gem 的 SSL 和代理配置
- css - 从子组件触发应用级别样式更改
- python - Python - groupby 在“类别”类型中表现异常
- javascript - 如何检查电子邮件是否在客户端的firebase中得到验证?
- java - 为什么在验证另一个模拟时访问模拟时 Mockito 会抛出?
- angular - 为什么 PrimeNG p-calendar 不显示日期的值?
- python - 将行列表与一列乘以条件(数据帧)
- javascript - nodemon一直在等待文件更改而崩溃
- android - 为什么我的 ListView 项目重叠而不是滚动?
- android - 在android中将图像添加到firebase?