我正在创建一个应用程序,其中客户端向服务器发送请求,然后获取唯一的请求 ID。当客户端想要再次与服务器交互时,将使用这个唯一的请求 ID 对客户端进行身份验证。
客户端的请求分为两种:
- 新请求,它没有现有的 id,并且来自服务器的响应生成并返回一个 id。
- 带有 id 的现有请求。然后服务器处理客户端对提供的 id 的请求。
我的问题是如何生成 id?我正在使用 Java 和 MySQL 服务器数据库。如果我使用自动递增的数据库生成的 id,那么客户端就很容易猜出 id。另一个客户端可以通过猜测和滥用它们来恶意生成一些 id(客户端/服务器之间没有身份验证,除了 id :< )
如果我使用 UUID 或其他随机算法生成随机 id,那么我需要检查整个数据库(可能有数千条记录),以真正检查并保证随机 id 是否确实是唯一的?还是在数据库中快速检查 id 是否存在并且不会导致性能问题?
我应该采取什么措施?除了唯一 ID 之外,我是否需要对客户端和服务器之间的身份验证采取更多安全措施?