我想知道我们如何保护 pouch db 中的数据?是否有任何机制,如静态数据加密或传输层 SSL 保护?
1 回答
假设“传输”是指本地和远程数据库同步,那么明确的选择是使用 HTTPS [1]而不是 HTTP。
很少有理由不使用 HTTPS。
假设“静态数据”意味着加密本地数据库,简单的解决方案是 PouchDB 插件 Crypto Pouch [2]。
请注意 Crypto Pouch 的详细信息
如果您复制到另一个数据库,它将在将其发送到外部数据库之前进行解密。因此,如果您也希望对其进行加密,请确保也设置了密码。
因此,再次使用 HTTPS 进行传输。我有提到 HTTPS 吗?
加密数据库可能会引入性能瓶颈,因为它必须解密读取的每个文档并加密写入的每个文档。我不建议对整个数据库进行加密,除非它非常小和/或不经常查询,但这是由每个人决定的实现细节。
如果只需要加密特定文档,例如不复制的_local 文档[3] ,请结合使用出色的 Transform Pouch [4]插件并利用 Window.Crypto API [5]或 Native Crypto [ 6]包。
谨防!本地加密可能会阻止懒惰的闯入者,但积极主动的参与者可能会在您的方法中发现差距,所以要小心。
与所有 NPM 包一样,请务必在深度依赖之前阅读未解决的问题。例如,Crpyto Pouch 构建正在通过,但其维护者没有响应。
无论如何,请使用 HTTPS。我有提到 HTTPS 吗? 使用 HTTPS。
[1] HTTPS
[2] Crypto Pouch
[3] PouchDB _local 文档
[4] Transform Pouch
[5] Window.Crypto API
[6] Native Crypto