保持用户匿名 - 仅限安全数据库选项 - 一般想法?

use*_*od2 6 database security database-security bcrypt node.js

我正在开发一个网络应用程序,正在考虑如何保持用户的身份完全匿名.

但是我得出的结论是,我无能为力 - 除了专注于保护数据库不被黑客入侵.

这是StackOverflow上的普遍共识还是我可能错过了任何方法?

所以我想到了:

  • 直接的bcrypt哈希和盐然后由于各种原因导致联系用户.
  • 密码重置.我可以保存恢复问题/答案,但当然答案需要是可读的,以便击败事情.
  • 另一点是他们忘记了那些安全问题或我在注册时生成的用户名.无法将它们链接到帐户.
  • 还想到了(假设我已经征服了上述内容)限制重复用户.如果我进行哈希/盐渍搜索,处理时会非常"沉重"吗?我可以简单地保留一长串使用过的电子邮件,然后将问题再次链接到现有帐户?

有兴趣听听你的想法.

谢谢.

Aar*_*nco 3

我认为你描述的场景是可能的。您可以在用户登录时向他们提供解密令牌。令牌可以分配给前端应用程序中的变量,因此,如果他们离开站点或页面,令牌将丢失,并且必须再次登录。

使用令牌,应用程序可以解密来自服务器的加密数据。因此,所有数据都可以使用令牌进行加密。然后,如果需要更改密码,您可以在生成新密码时生成新令牌,并且您的服务器必须使用新令牌解密然后重新加密所有数据。通过这种方式,您可以在使用 SSL 的同时对所有服务器文件、代码和数据库进行加密,这样所有数据在到达用户进行显示之前都是匿名的。用户登录将是获取令牌来解密来自服务器的任何数据的唯一方法。这会大大降低服务器性能。

Atmel 在其微芯片中使用了这项技术,以实现从设备到云的 100% 加密。这对于芯片来说是有意义的,因为用户不必与它进行视觉交互。对于 Web 应用程序,需要某种方法来解密数据以供显示。这限制了可能性。

以下是执行此操作可能有用的几个链接: https: //www.jamesward.com/2013/05/13/securing-single-page-apps-and-rest-services https://www.fourmilab .ch/javascrypt/javascrypt.html

这是使用上述安全方法的 Atmel 芯片的链接。 http://www.atmel.com/products/security-ics/cryptoauthentication/