登陆成功之后为什么将User对象传到前台?--求高人指点

来源:6-2 登录功能开发

qq_谁动了我的奶酪_03546962

2018-04-25

问题一:

登陆成功之后为什么需要将User对象传给前台?user对象中包含了用户的角色,问题,答案等敏感信息,如果被截获,那攻击者不就可以根据忘记密码,填写问题,以及答案来重置用户的密码了吗?下面这个地方之所以在返回User给前台前,将user对象中的密码置空的用意是否是防止泄露用户密码?

http://img.mukewang.com/szimg/5ae0994d0001471f12930876.jpg

问题二:

将user对象的密码置空为什么调用三方jar包的方法,这种写法有什么优点吗?与直接写成user.setPassword("");或者user.setPassword(null) 有什么区别吗?

我将User类序列化,然后将password 使用@JsonIgnore也可以起到相同的效果,这样写是否有弊端?

http://img.mukewang.com/szimg/5ae09b6f0001b80b17210872.jpg

http://img.mukewang.com/szimg/5ae09c6d00013fad16140795.jpg

写回答

2回答

Geely

2018-05-01

你好同学

  1. 问题一:这个说的很正确,包括问答以及答案,这个是可以不传的。出于安全考虑,这个问题和答案信箱等都可以不传。目前课程里只是把密码置空了,其实都可以干掉。不回传也没关系,而且更安全。

  2. 这个没什么区别,直接set为null即可,这个只是为了讲jackson序列化的时候,把这个password忽略掉,引出一个知识点。即使这样,前台也是看不到密码的。没什么弊端,效果一样。


0
3
qq_谁动了我的奶酪_03546962
回复
Geely
妥妥的~
2018-05-10
共3条回复

polo哦

2018-04-26

1、user传回去是需要可能将user的信息打印到前端,不传密码的确是为了防止泄露

2、null就是没有这个对象,“”是空字符串,你可以看看NON_NULL的源码是怎么判断的

0
1
qq_谁动了我的奶酪_03546962
看清问题再回答吧
2018-04-27
共1条回复

从0开始 独立完成企业级Java电商网站服务端开发

前后端分离,数据库接口设计,架构设计,功能开发,上线运维

9476 学习 · 8804 问题

查看课程