通过产品密钥、模糊处理或类似的客户端保护来开发桌面应用程序时,防止盗版是毫无意义的(大量关于这一点的stackoverflow帖子(。防止盗版的唯一真正方法是创建一个客户端-服务器通信,其中重要代码仅在服务器上。
这就是我试图用我的软件做的,需要登录才能验证对服务器处理一些数据的请求。再加上一种简单的方法来更改密码和IP会话跟踪,这是非常简单的。然而,现在用户在想使用用户名和密码时必须输入用户名和密码,而且他们可以很容易地输入其他人的凭据。
然后我突然想到,当用户下载客户端软件时,在应用程序中嵌入用户名怎么样?从用户的角度来看,只需要一个密码,这会加快速度。是的,仍然可以将程序编辑为其他人的用户名,但现在不那么明显了。
这就是我的问题,将用户名硬编码到程序中是否存在安全风险或设计缺陷?其次,如何开始在上面实现用户名嵌入和C++编译。。。Node js服务器应用程序?
谢谢你抽出时间。
您错过了服务器托管软件的要点,这就是:
您始终可以控制服务器。您永远无法控制客户端。
所以当你说:
当用户想要使用用户名和密码时,他们必须输入用户名和密码,并且他们可以很容易地输入其他人的凭据
你真正的意思是:
当有人输入他人的凭据时,我该怎么办?
答案是根据访问模式限制或取消对凭据的访问。如果你看到可疑的访问,比如来自不同国家的IP,你可能需要调查并可能禁止该账户。
当你控制服务器时,你并不是无能为力。如果必须的话,把人锁在外面。
您也不想在可执行文件中嵌入信息,因为合法所有者,即您的客户,会希望验证他们下载了基于SHA2等加密哈希的正确文件。如果你修改每个文件,他们就无法做到这一点,而且每个版本看起来都是"被黑客入侵"的。
相反,如果必须,可以创建某种加密的访问或许可证文件,这些文件可以提供给服务器,并使用只存储在服务器上的密钥进行解密。当然,他们可以与其他人共享该文件,但您可以识别未经授权的访问并相应地进行处理。