Security 如何使用敏感数据安全地执行REST?

Security 如何使用敏感数据安全地执行REST?,security,rest,Security,Rest,我们正在实现一个新的web服务。web服务将存储敏感数据,并且有多个具有不同权限的用户类型。因此,有些用户类型无法访问(有些无法更改,等等)某些类型的数据。这在休息时如何工作?我是新来休息的,如果这听起来不太好,我很抱歉 您的第一步是以SSL的形式提供一些传输加密。这需要注意,没有中间人的攻击,也没有人窥探数据。其次,您需要找出某种身份验证方法。一种流行的方法是创建一个登录服务,向其发送用户名和密码,然后返回某种类型的有限生命密钥。然后,将此密钥与所有子请求一起发送,服务器在返回任何数据之前对其

我们正在实现一个新的web服务。web服务将存储敏感数据,并且有多个具有不同权限的用户类型。因此,有些用户类型无法访问(有些无法更改,等等)某些类型的数据。这在休息时如何工作?我是新来休息的,如果这听起来不太好,我很抱歉

您的第一步是以SSL的形式提供一些传输加密。这需要注意,没有中间人的攻击,也没有人窥探数据。其次,您需要找出某种身份验证方法。一种流行的方法是创建一个登录服务,向其发送用户名和密码,然后返回某种类型的有限生命密钥。然后,将此密钥与所有子请求一起发送,服务器在返回任何数据之前对其进行验证。如果您有不同的用户级别,那么除了检查密钥外,还要检查给定用户是否应该能够访问该信息

不管你想用什么加密它

客户端只需在每个请求中包含用户名和密码即可


或者,您可以有一个登录请求来验证用户,并在cookie中或作为响应的一部分返回会话状态令牌。

正如第一张海报所述,它是一种流行的模式,为客户端提供了一种方法,使其首先对您的系统进行身份验证(谷歌为他们的许多API执行此操作)。一种应答,其中包括一个令牌,供客户端在后续请求中作为参数包含

e、 g.使用用户名和(密码的MD5散列)将HTTP POST(通过SSL)发送到-将其与您为其存储的密码的MD5进行比较

使用HTTP 200 OK和带有身份验证令牌的消息体或消息头进行响应

与在每个请求中重新提交身份验证凭据相比,这有双重好处。减少了令牌的处理开销(现在只是有效性检查——可能是针对有效令牌的内存存储),而不是用户和密码的DB查找。您还可以减少通过网络发送凭据的次数(尽管由于SSL加密)

在资源端点上实现访问控制需要更多的工作,但基本上只是指定哪些令牌可用于哪些资源。这取决于您的场景

希望这有意义,祝你好运