zoukankan      html  css  js  c++  java
  • 也谈用户登录注册

      早上看了一篇文章 无废话MVC入门教程九[实战一:用户注册与登陆] ,被 无废话、实战 这些强有力的字眼所吸引,拜读之。本文目标:一、独立开发用户注册与登陆!读完发现很欠妥当,于是评论了一下,被博主强烈反驳。本人才浅,也许言语很欠妥当罢,在此给那位博主道个歉。

      注册和登录几乎是每个web必备的模块,通常面试的时候也会简单和面试者讨论下。

    个人感觉做注册和登录需要考虑以下两点:

    • 用户密码的存储,园子里面有很多相关的博客
    • 登录状态的保持,cookies安全

    用户密码的存储

      很显然,现在没人会用明文存储了,这样会显得我们做程序的很二。园子里面有很多这方面的文章,可以搜索下。可以选择MD5加密,加上自己的盐值,或者使用用户注册的用户名做为盐,再或者自己变异一个MD5加密方式出来等等。

    登录状态的保持,cookies安全

      HTTP是无状态的,而服务端需要知道用户的登录状态,所以需要一个标识,来标识用户的登录状态。用户登录后,需要把用户的信息,比如UserId或者UserName写入cookies,作为用户已登录的标识。然而这样安全么?显然是不安全的,因为cookies可以伪造,UserId或者UserName在网站上很容易知道,自己伪造一个cookies,就可以是任意一个用户登录从而绕过用户密码。那么加密不就行了么,是的,加密以后别人看不到了,不知道加密方式的话也没办法伪造了。这样就安全了么?显然不是,如果把这个加密的字符串给复制到别的计算机,别的浏览器上,那么这个用户不也被登录了么。所以还需要一个key,来标识这个登录状态的唯一性,这个key可以是浏览器标识、ip地址加上其他一些参数加密而来。这样才是一个相对可靠的登录状态保存方式。

    如果用户忘记了密码,怎么办,所以还需要提供一个密码重置的地方,密码重置又有很多方式,回答问题,手机,邮箱等

    示例代码感觉没必要,知道思路代码很容易。

     

     

     

     

     

    作者:BangQ

    http://www.cnblogs.com/BangQ/

     

    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
    说明:本文以“现状”提供且没有任何担保,同时也没有授予任何权利。 | This posting is provided "AS IS" with no warranties, and confers no rights.
    珍爱生命,Leave here!
  • 相关阅读:
    十大Intellij IDEA快捷键
    IDEA 在同一目录创建多个项目
    IDEA2017 使用(二)
    idea使用(一)
    js == 与 === 的区别[转]
    Spring Boot(一)
    微服务实战(一):微服务架构的优势与不足
    phpcms:三、头部包含
    phpcms:二、头部尾部包含
    phpcms:一、安装及新建模板
  • 原文地址:https://www.cnblogs.com/BangQ/p/2982778.html
Copyright © 2011-2022 走看看