面试题答案
一键面试常用安全验证措施及保障方式
- 基本身份验证
- 措施:在HTTP请求的
Authorization
头中包含用户名和密码的Base64编码值。例如,对于用户名admin
和密码password
,编码后在Authorization
头中格式为Basic YWRtaW46cGFzc3dvcmQ=
。 - 保障方式:CouchDB服务器接收到请求后,解码
Authorization
头中的信息,将用户名和密码与存储在数据库中的用户凭证进行比对。只有当用户名和密码都匹配时,才允许进行文档删除操作,以此防止未授权用户随意删除文档。
- 措施:在HTTP请求的
- 基于令牌的身份验证
- 措施:客户端首先通过认证端点获取一个令牌(例如JSON Web Token,JWT)。这个令牌包含了用户的身份信息和相关权限声明。在后续的删除文档请求中,将该令牌放在
Authorization
头中,格式通常为Bearer <token>
。 - 保障方式:CouchDB服务器接收到请求后,验证令牌的签名以确保令牌未被篡改。然后解析令牌中的用户信息和权限,检查该用户是否具有删除文档的权限。如果令牌有效且用户有权限,才会执行文档删除操作,增强了安全性,尤其是在分布式和跨域场景中,因为令牌可以携带更丰富的权限信息。
- 措施:客户端首先通过认证端点获取一个令牌(例如JSON Web Token,JWT)。这个令牌包含了用户的身份信息和相关权限声明。在后续的删除文档请求中,将该令牌放在
- 基于角色的访问控制(RBAC)
- 措施:为用户分配不同的角色,每个角色被赋予特定的权限。例如,创建一个“管理员”角色,该角色具有删除文档的权限,而“普通用户”角色可能没有此权限。在数据库配置中定义角色与权限的映射关系。
- 保障方式:当用户进行删除文档操作时,CouchDB服务器根据用户的角色检查其是否具有删除文档的权限。只有具有相应权限角色的用户才能成功执行删除操作,通过角色与权限的合理配置,实现细粒度的访问控制,提高文档删除操作的安全性。
- 文档级安全(Document - Level Security)
- 措施:在文档本身中定义访问控制列表(ACL)。例如,在文档的元数据中添加字段,指定哪些用户或角色可以删除该文档。
- 保障方式:CouchDB服务器在接收到删除文档请求时,不仅检查用户的全局权限,还会查看文档自身的ACL。只有符合文档ACL中规定的用户或角色才能删除该文档,实现了对单个文档更精确的安全控制,防止误删或恶意删除特定文档。