请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

django拿到session,如何从session中得知当前是哪个用户的?

从课程看,后台通过session来区分用户,且在用户没有登录时,根据session自动登录。后台通过session和数据库的session比较,确定session合法性,容易理解,但是是如何从session获取用户信息的呢?因为session是加密的。
如果后台可以通过session解密获取用户信息,这实际上是不是又不够安全呢?只要能解密,总有办法拦截信息并解密。

正在回答 回答被采纳积分+3

1回答

bobby 2018-10-12 14:47:07

你可以了解一下django 的session的原理, 有一张表会保存session和用户信息的表,从这张表中可以获取到session对应的user信息

0 回复 有任何疑惑可以回复我~
  • 提问者 慕无忌4185177 #1
    我在数据库倒是看到session表,这里只有session_key, session_data和expire_date,并没有session data和用户信息的对应信息。请问,你说的表,是django内部的数据库表吗?
    回复 有任何疑惑可以回复我~ 2018-10-14 09:43:51
  • bobby 回复 提问者 慕无忌4185177 #2
    session_data 是加密数据,里面有用户的基本信息如id等,解密了才能看到,这些django都已经完成了
    回复 有任何疑惑可以回复我~ 2018-10-15 11:17:59
  • 提问者 慕无忌4185177 回复 bobby #3
    如果django能解密数据,这样应该非常不安全吧,网站后台是比较容易利用这一点轻易获取用户的用户名 密码,即使使用https也没用。后台可以数据库获取session,利用django的解密算法获取信息。
    回复 有任何疑惑可以回复我~ 2018-10-16 07:15:20
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信