简单的账户控制系统

Simple account control system

我的程序是一个 TCP 套接字服务器,它应该由命令应答系统通过网络进行管理。命令(请求)-应答系统不是问题:客户端发送数据包,服务器接收数据包并生成响应。数据包只是字节序列。
问题是我必须创建一个简单的帐户系统。我的服务器应该存储和管理两种帐户类型:"administrator" 和 "simple user"。因此我应该拥有的东西:一个注册、认证和一个密码存储系统。这如何在 Qt5 上简单地完成?例如,我可以简单地通过网络发送用户名和密码(或密码哈希值),但是如何以正常方式在服务器上最初创建管理员帐户?我没有严格的安全要求,但我想创建一个有意义的普通系统。

使用 QSslSocket 获取安全通信层 (http://doc.qt.io/qt-5/qsslsocket.html),因为您将在此管理之上交换密码 link。

这里有一个代码的客户端部分示例,使用 Qt5:http://doc.qt.io/qt-5/qtnetwork-securesocketclient-example.html

在服务器端,接受预定义的未使用端口上的套接字,专用于您的服务。

现在,您可以简单地决定使用与管理员帐户相对应的随机秘密密码登录,并创建一个程序以在基于 QSslSocket 的安全通道上发送此密码。您的服务器必须在接受远程管理之前检查密码。

因此,如您所见,必须在使用该服务之前创建管理员。您可以使用基于某些加密方式(OpenPGP、S/MIME 等)的私人邮件交换来为管理员提供密码。

最简单的方法:管理员凭据应该通过服务器端的一些配置文件进行预定义。作为额外的保护,您可以强制用户在首次登录时更改密码。另一种方式:许多 CMS 为首次登录的用户提供完全访问权限和安装步骤。