如何为我的客户端 - 服务器程序创建安全的自动登录系统?

时间:2017-04-30 13:21:07

标签: java python database sqlite network-programming

我想为我的客户端 - 服务器程序创建一个自动登录系统。 我有一个想法,但我认为这是非常不安全的。所以..任何人都可以向我解释如何以安全的方式做到这一点,所以没有人可以进入我的帐户"只是复制文件"。

我的想法: 当客户端在服务器上注册时,他从服务器获得标识符和securitytoken。客户端和服务器将这些保存在sqlite数据库中。当客户端启动程序时,他会检查他是否有数据库。如果他有他将数据库内的数据发送到服务器。如果服务器已获取客户端登录的数据。

1 个答案:

答案 0 :(得分:1)

有多种方法可以实现此身份验证。 交换令牌是个好主意。对于应用程序中的每个客户端,令牌必须是唯一的,并且服务器在身份验证阶段(中间件)验证令牌是否存在于数据库中。 如果是,则正常处理请求。如果失败,则返回401错误代码。

有多种类型的令牌。它可以是一个随机令牌,如果该令牌有效,您可能需要检查数据库,或者带有服务器私钥的加密签名令牌。这种方法增加了以下优点:如果该令牌有效,则不需要检查DB,因为它可以使用服务器的公钥进行验证。其中一个例子是Json Web Tokens https://jwt.io

如果您希望客户端不再连接到您的系统,您还必须考虑撤销令牌的方法。

最后,只要客户端和服务器之间的通信使用SSL / TLS或任何其他方法加密,就必须提到该系统的安全性是有效的。如果您使用纯文本通信,网络中间的任何人都可以获取您的令牌并代表客户端发送请求。