面试题答案
一键面试1. 2.x版本安全机制概述
- 基本认证:CouchDB 2.x主要依赖基本认证方式,通过用户名和密码进行身份验证。这种方式在传输过程中,如果没有额外的加密(如HTTPS),用户名和密码可能会被截获。
- 角色与权限:它定义了角色概念,不同角色对数据库有不同权限,如读取、写入等。但权限管理相对较简单,对于复杂的业务场景,可能难以满足细粒度的权限控制需求。
2. 3.x版本安全机制变化及差异
- 改进的认证方式:3.x版本增加了对JSON Web Tokens(JWT)的支持。JWT允许更灵活的认证方式,例如可以实现跨域认证,并且在令牌中携带自定义的用户信息。与2.x的基本认证相比,JWT在安全性上有提升,因为它可以通过签名验证令牌的完整性,防止篡改。
- 更细粒度的权限控制:3.x引入了基于文档级别的权限控制。在2.x中权限主要针对数据库级别,而3.x能对单个文档设置不同的访问权限。例如,可以基于文档的某个字段值来决定用户是否有权访问该文档。这大大增强了数据的保密性,尤其是在多用户、多租户的复杂环境中。
- 安全漏洞修复:随着时间推移,3.x版本修复了2.x版本中发现的一些安全漏洞,如某些可能导致未授权访问的漏洞。这直接提升了系统整体安全性。
3. 对系统安全性的提升或改变体现
- 提升保密性:通过JWT和文档级权限控制,敏感数据的保密性得到显著提升。不同用户只能访问其被授权的文档,减少了数据泄露风险。
- 增强完整性:JWT的签名机制确保了认证信息的完整性,防止认证信息被篡改,保障系统按预期的安全策略运行。
- 适应复杂场景:更细粒度的权限控制使CouchDB能更好适应复杂的业务场景和多租户环境,满足不同安全需求,提升了系统整体的安全性和灵活性。