客户端/服务器应用程序的身份验证策略

时间:2011-08-13 19:55:01

标签: c++ security sockets authentication client-server

我正在为一个基本的聊天程序编写一个简单的协议。 我的问题是:一旦客户端通过提供用户名和密码进行了身份验证,我是否还应该要求客户端在其后续数据包中提供令牌?或者是否足以将其身份验证状态保存在服务器的表中,并且永远不要指望客户端在断开连接并重新连接之前对其进行验证?

1 个答案:

答案 0 :(得分:0)

在客户端提供正确的凭据后,您不应要求对任何其他消息进行身份验证。如果您的嫌疑人,每条消息都应包含身份验证信息,并且在此实现中您无需通过“登录”进行身份验证 - 只需要在每条消息上提供安全信息。

成功登录后,您可以要求用户凭据的唯一情况是更新客户端信息(通过客户端本身),包括更改密码和其他“用户”信息。启动“更改密码”请求时,您必须要求输入密码。

确保身份验证附加了一些加密,以便没有人可以拦截该消息。您可能还有一些密钥(如几个字节的字符串),您可以验证每个传入的消息,以确保消息来自正确的客户端(这是根据您的原始设计,而不是我在第一段中给出的备用设计)。