这样的逻辑大家如何处理

C_SuperMe 2009-07-30 09:18:10
要判断用户名和密码是否正确,如果不正确判断用户是否存在,这样的逻辑大家是先判断用户是否存在呢还是先判断用户名和密码是否正确?
...全文
114 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
sue_1018 2009-07-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jinjazz 的回复:]
不要判断是否存在,否则会被人利用。只判断一次用户名和密码是否匹配,错误信息这样提示
-----------

你输入的帐户不存在或者密码不正确。
[/Quote]

是这个意思
souperstar 2009-07-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jinjazz 的回复:]
不要判断是否存在,否则会被人利用。只判断一次用户名和密码是否匹配,错误信息这样提示
-----------

你输入的帐户不存在或者密码不正确。
[/Quote]
支持
tim_spac 2009-07-30
  • 打赏
  • 举报
回复
在前台判断返回值,根据安全需求或其他需求选择提示:
"你输入的帐户不存在或者密码不正确"
|
"用户不存在" or "密码错误"
tim_spac 2009-07-30
  • 打赏
  • 举报
回复
create procedure proc_checklogin(@name varchar(32), @pwd varchar(32))
as begin
select @password=password from login where name=@name

if @password is null
return -1 -- not exists the name

if @pwd!=@password
return -2 -- the password is not correct

return 0
end
xuejie09242 2009-07-30
  • 打赏
  • 举报
回复
剪刀有道理 ,不过呢,话分两面说,如果是需要监控登录,需要记录登录的情况,就需要检查了。
先要检查用户 名,然后再查密码。对外还是上面 的提示,可内部呢,你要䏳明白是 帐户名不存在,还是密码错误。

这大概就是信息隐藏吧。
zwzw911 2009-07-30
  • 打赏
  • 举报
回复
其实应该无所谓的,无论是先判断用户是否存在还是先判断匹配,关键是显示的信息要象剪刀说的那样“你输入的帐户不存在或者密码不正确。”,这样可以防止恶意用户猜测你程序的判断逻辑,防止SQL注入等攻击。
C_SuperMe 2009-07-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 meheartfly 的回复:]
判断用户名和密码匹配的记录是否存在就可以,不用整这么麻烦

[/Quote]因为这里要对不存在的用户做个特殊处理
zjybushiren88888 2009-07-30
  • 打赏
  • 举报
回复
剪刀哥说的很深刻.
meheartfly 2009-07-30
  • 打赏
  • 举报
回复
判断用户名和密码匹配的记录是否存在就可以,不用整这么麻烦
C_SuperMe 2009-07-30
  • 打赏
  • 举报
回复
那看来是要先判断存在在判断是否正确了。
feixianxxx 2009-07-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jinjazz 的回复:]
不要判断是否存在,否则会被人利用。只判断一次用户名和密码是否匹配,错误信息这样提示
-----------

你输入的帐户不存在或者密码不正确。
[/Quote]
HOHO..
果然是剪刀 学习了。。
单从逻辑上来说 是应该坚持存在与否
不过安全上来说 就是剪刀说的了
guguda2008 2009-07-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jinjazz 的回复:]
不要判断是否存在,否则会被人利用。只判断一次用户名和密码是否匹配,错误信息这样提示
-----------

你输入的帐户不存在或者密码不正确。
[/Quote]
就是剪刀哥说的这样了
水族杰纶 2009-07-30
  • 打赏
  • 举报
回复
我一般同時將密碼與帳戶作為查詢條件
如果沒有紀錄返回
就提示用户名或密码錯誤
jinjazz 2009-07-30
  • 打赏
  • 举报
回复
不要判断是否存在,否则会被人利用。只判断一次用户名和密码是否匹配,错误信息这样提示
-----------

你输入的帐户不存在或者密码不正确。
feixianxxx 2009-07-30
  • 打赏
  • 举报
回复
先判断 是否存在呗u
不存在 还查什么用户名密码正确与否
华夏小卒 2009-07-30
  • 打赏
  • 举报
回复
我觉得应该先判断存在,再比较对错吧
飞驴 2009-07-30
  • 打赏
  • 举报
回复
同时判断不就行了,不存在当然不正确,如果要分开提示,应该是先不存在吧,再进行是否正确
 课程目标:你将对研发框架的代码封装和开发规范制定的底层实现逻辑有所掌握,并形成自己的开发封装套路,告别CRUD课程简介:   1. 课程背景: 能帮你解决什么问题?企业中通常由架构师搭建好开发框架,里面包含了很多封装好的基础结构,日志规范以及响应的异常统一处理,还有相应的参数校验等。很多初中高级开发工程师没有机会接触这部分代码的逻辑,而这部分代码逻辑又是非线性的,单纯看代码逻辑是看不出来执行顺序的,需要大量调试总结。不像mvc代码结构,你知道从Controller层看到Service再到Dao层,而这样底层的基础性代码则像积木,不熟悉的前提下需要一块块的插入拔出,不断总结,而沿着本课程的顺序梳理与实战你将会豁然开朗。市面上的大多文章结构较散,并且处理不够全面,比如返回结构通常是 具体的正例与反例日志统一处理 统一异常处理及特殊的情况处理 参数优雅校验 1基础的校验 2. 自定义校验 3.分组校验最重要的是给大家捋顺了一个清晰的实现结构以上在我们后面章节Spring Boot HelloWorld的至少10个可扩展点里有更多的相关介绍,在核心章节里有更细致的讲解实现。理解框架升级底层逻辑: 全网首套基于Spring Boot 3.x+Java 17开发系列 SpringBoot3的升级背景和路线逻辑掌握代码重构及编码效率提升技巧学习基于最为前沿的Spring Boot 3.x 和 Java 17 开发代码依赖于Spring Boot 3.x Java 17环境开发穿插相应新版本的变化讲解可编写完成一个生产级开发规范框架的制定 包含不限于 统一响应结构统一异常处理基于ThreadLocal处理请求RequestId基于日志框架的MDC 统一记录日志统一状态码处理Filter中的异常及状态码处理,以及日志的完整性处理自定义优雅参数校验学习源码剖析方式方法等等 3. 课程规划1.  课程章节规划 2. 讲课方式代码实战为主+图文演示为辅例如说明后端校验的重要性 以一张图清晰明了的展示说明解答了为何前端有了前端校验还要后端校验的问题 3. 特别说明本课程所有代码使用版本会随着Spring Boot 3.x的开发进度而更新,直到Spring Boot 3.x的正式版本发布,可放心食用本课程的重点会侧重放在研发框架的基础规范编码上,并非专注于SpringBoot3.x和Java17的新特性上讲解。主要是两点原因,1课程的方向侧重点, 2. SpringBoot3.x 官方尚处于MileStone/Snapshot版并未Release,所以大家可关注本人编程燃风后续的产品课程。本课程代码同样适用于Spring Boot 1.x 2.x 只需微调API和相关库版本的即可(注意1.x已经归档不维护) 常见问题:问:是否讲解Java17和SpringBoot3新特性答:本课程的重点会侧重放在研发框架的基础规范编码上,并非专注于SpringBoot3.x和Java17的新特性上讲解。主要是两点原因,1课程的方向侧重点是框架基础规范编码实战 2. SpringBoot3.x 官方尚处于MileStone/Snapshot版并未Release,所以大家可关注本人编程燃风后续的讲解课程。问:代码仅限于SpringBoot3吗? SpringBoot2和SpringBoot1是否适用?答:本课程代码同样适用于Spring Boot 1.x 2.x 只需微调API和相关库版本的即可(注意1.x已经归档不维护)。另外本课程重点讲解代码封装和底层实现逻辑和具体API版本关联不大,只是基于最新的SpringBoot3和Java17实现而已,请放心使用。

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧