zoukankan      html  css  js  c++  java
  • 一个不用password的用户系统

    非常多年前云风设想过这样一个用户系统《为什么一定要有password?》,我是挺赞同的。对我来说,用户系统是一个责任重大的东西。可惜非常多国内厂商都不把这当回事。

    之前做过一些小东西,基本上都是採用第三方登录的方式。比方用google账号登录。这样就把用户管理的麻烦事交给第三方去处理了,相信google这种大厂能做得更好。

    然而总会有须要自己管理用户的时候,尽管能够採用各种安全的措施去保护这些用户数据,比方用更安全的password散列算法什么的,但不妨不要有password,没有password就无从泄露了。

    之所以有这种想法,是站在用户的角度:你可能认为你的产品非常重要。希望用户用更强的password来保护他们在你产品中的数据,但从用户的角度上来说,他们的隐私比你的破产品重要得多,根本不想把重要的password用在你的产品上,谁知道你的产品会不会被脱库然后成为社工数据的一部分,用一个低安全性的通用password跟没有password的安全性是一样的,甚至更差,那不如索性不要password。

    可是password又必须是一个可选项,毕竟还是会有人认为他们在你产品的数据也有点重要,可是又不想用跟别的地方一样的password——毕竟还是有非常多人不会去用password管理工具的。我想到的一个办法就是OTP(一次性password)。比方 Google Authenticator 这种现成的TOTP工具。

    基本流程是这样:

    用户使用email登录。假设是新用户。就用这个email注冊,用户注冊完即能够使用。

    那么想设置password怎么办?注冊时会有提示,假设要设置password请查收邮件。

    邮件的内容就是下面几个东西:

    设置password的链接,Google Authenticator二维码。Android/iOS版的Google Authenticator安装链接加上设置说明。

    设置方法:

    下载安装Google Authenticator。扫描二维码加入账号,在设置password的页面里输入刚才扫出来的Google Authenticator账号的一次性password就可以完毕password设置。


    设置好password以后再次登录就须要在输入完email之后输入Google Authenticator产生的一次性password。

    丢失Google Authenticator以后重置password也非常easy。仅仅要又一次生成一个二维码并重发邮件就可以。

    至于用户假设用了网易之类不安全的邮箱那就没办法了。

    当然眼下仅仅是一个设想,抽出时间写个DEMO试试。


  • 相关阅读:
    List<T>和ObservableCollection<T>的相互转换
    MySQL Cannot add or update a child row: a foreign key constraint fails
    Genymotion常见问题解决方案
    关于Socket的建立及连接
    在WPF中引用WinForm的控件
    WCF调试日志
    WebSocket简介
    关于依赖注入和依赖属性
    ASP.NET MVC 学习笔记1 Talk about controller & route
    【转】关于List排序的时效性
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7136761.html
Copyright © 2011-2022 走看看