Django是安全的会话,用于存储权限信息

时间:2018-01-26 11:20:23

标签: django session

我目前正在Django中编写应用程序,我正在考虑在用户会话期间存储特定的权限信息。权限由以下值组成;

  • 没有权限 - 0
  • 只读 - 1
  • 编辑 - 2
  • 添加和编辑 - 3
  • 完全许可 - 4

值越高,用户拥有的权限越高。如果用户对“Projects”模块只有“Edit”权限,我想将其存储在某个地方,这样我就不必让Django不断地查询数据库了。使用以下内容是否合适;

request.session['project_permission'] = '2'

或者用户是否能够编辑此值并潜入更高的数字,如3或4?

感谢您的阅读。

1 个答案:

答案 0 :(得分:1)

假设您正在使用Django的默认会话模型后端,则用户将无法编辑任何与会话相关的数据。

存储在客户端的唯一信息是sessionid(在cookie中),它是Django Sessions表的主键。

Django会话表还有一个名为" session_data"的列。它存储散列的会话数据(用户无权访问,除非他们可以访问您的数据库)

我不建议在会话中存储权限,有更好的方法来实现它。 此外,会话(默认django会话模型后端)数据存储在数据库中,因此间接查询正在进行中