首页 > 解决方案 > 如何保护 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 中加密连接字符串?

标签: c#winformssecurity

解决方案


推荐阅读