因此,基本上我已经准备好了我的应用程序分发(它只会分发给我们的客户,而不是通过互联网在全球范围内分发)。它是一个简单的WPF (.net Framework4.8)应用程序,它与定义的REST交互。但是要与上述API交互,我当然需要凭证(用户、密码和来自ClientID和ClientSecret的哈希字符串)。目前,我在源代码中以纯文本的形式获得了这些信息.这显然不是最终的解决办法。
当我读到很多关于保护密码的不同方法(SecureString、RFC2898DeriveBytes、Salts、Peppers等)时,我一直失去了我的注意力。
总之,对API的请求必须如下所示:
POST https://server.domain.tld/MobiControl/api/token HTTP/1.1
Host: server.domain.tld
Authorization: Basic QXBwbGljYXRpb24xOkFwcGxpY2F0aW9uMVBhc3N3b3Jk
Content-Type: application/x-www-form-urlencoded
Content-Length: 53
grant_type=password&username=Administrator&password=1由于正文以明文形式包含用户名和密码,我问自己,安全地加密源代码中的凭据是否可能,是否有意义?
发布于 2022-04-20 12:09:13
API的凭据是否总是相同的,还是取决于谁在使用WPF应用程序?如果您只是使用WPF用户的凭据或其他基于它们的东西,那么您就可以了。没有完全可靠的方法来确保您要分发给第三方的二进制文件中的凭据。通过加密凭据可以使提取变得更加困难,但根据定义,解密密钥也必须在应用程序中。
我猜你不控制API?否则,唯一的方法是让最终用户的凭据访问API。
https://stackoverflow.com/questions/71939276
复制相似问题