登陆成功之后为什么将User对象传到前台?--求高人指点
来源:6-2 登录功能开发
qq_谁动了我的奶酪_03546962
2018-04-25
问题一:
登陆成功之后为什么需要将User对象传给前台?user对象中包含了用户的角色,问题,答案等敏感信息,如果被截获,那攻击者不就可以根据忘记密码,填写问题,以及答案来重置用户的密码了吗?下面这个地方之所以在返回User给前台前,将user对象中的密码置空的用意是否是防止泄露用户密码?
问题二:
将user对象的密码置空为什么调用三方jar包的方法,这种写法有什么优点吗?与直接写成user.setPassword("");或者user.setPassword(null) 有什么区别吗?
我将User类序列化,然后将password 使用@JsonIgnore也可以起到相同的效果,这样写是否有弊端?
写回答
2回答
-
你好同学
问题一:这个说的很正确,包括问答以及答案,这个是可以不传的。出于安全考虑,这个问题和答案信箱等都可以不传。目前课程里只是把密码置空了,其实都可以干掉。不回传也没关系,而且更安全。
这个没什么区别,直接set为null即可,这个只是为了讲jackson序列化的时候,把这个password忽略掉,引出一个知识点。即使这样,前台也是看不到密码的。没什么弊端,效果一样。
032018-05-10 -
polo哦
2018-04-26
1、user传回去是需要可能将user的信息打印到前端,不传密码的确是为了防止泄露
2、null就是没有这个对象,“”是空字符串,你可以看看NON_NULL的源码是怎么判断的
012018-04-27
相似问题