日期:2014-05-17  浏览次数:20603 次

新手问登录界面用户验证为什么都这样做
我的想法是从数据库读取用户名密码,然后比较用户名密码,还可以知道是用户名输入错误还是密码输入错误,当然是先比较用户名了。
然而,我看了许多前辈的写法都是把用户输入的用户名和密码当做参数,传给数据库,读取反馈信息,比如一种方法是能够找到这个记录就验证通过,否则失败。
两者有什么安全性不同吗?第二种你发送的参数别人是不是也可以窃取到呢?和读取到本地有什么区别?求教

------解决方案--------------------
如果用户数量比较多,从数据库都读取所有的时间会很慢,而且也不安全,第二种你发送给数据库,数据库只是返回是否有数据,你怎么窃取?
------解决方案--------------------
从专业性来看,能读取一次数据库的,绝不读取两次
------解决方案--------------------
顶你个 我都是密码 账号一起 简单方便
------解决方案--------------------
一般是将用户名、密码代入查询,看看有没有符合条件的记录,这样安全性高,因为业务逻辑层接触不到密码。
当项目是很多人开发,并且避免员工接触生产环境的密码的时候(大企业对开发人员也是不信任的),就要这样做。
------解决方案--------------------
探讨

不懂啊,密码怎么处理?直接读取的密码文本框的数据,求指教


------解决方案--------------------
密码可以加密的~
------解决方案--------------------
要做的更详细,可以这样:
查询输入的用户名和密码是否存在?
不存在:查询用户名是否存在?如果不存在,提示“用户名不存在”;如果用户名存在但密码错误,提示“密码错误”

------解决方案--------------------
探讨
我的想法是从数据库读取用户名密码,然后比较用户名密码,还可以知道是用户名输入错误还是密码输入错误,当然是先比较用户名了。
然而,我看了许多前辈的写法都是把用户输入的用户名和密码当做参数,传给数据库,读取反馈信息,比如一种方法是能够找到这个记录就验证通过,否则失败。
两者有什么安全性不同吗?第二种你发送的参数别人是不是也可以窃取到呢?和读取到本地有什么区别?求教

------解决方案--------------------
探讨

要做的更详细,可以这样:
查询输入的用户名和密码是否存在?
不存在:查询用户名是否存在?如果不存在,提示“用户名不存在”;如果用户名存在但密码错误,提示“密码错误”

------解决方案--------------------
不用户名是否存在,都提示用户名密码不匹配就好了。
=》
不论用户名是否存在,都提示用户名密码不匹配就好了。