Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django会话可以安全地用于存储权限信息_Django_Session - Fatal编程技术网

Django会话可以安全地用于存储权限信息

Django会话可以安全地用于存储权限信息,django,session,Django,Session,我目前正在用Django编写一个应用程序,希望在用户会话期间存储特定的权限信息。权限由以下值组成: 没有权限-0 只读-1 编辑-2 添加和编辑-3 完全许可-4 值越高,用户拥有的权限越好。如果用户对模块“Projects”只有“Edit”权限,我想将其存储在某个地方,这样我就不必让Django不断地查询数据库。是否适合使用以下内容: request.session['project_permission'] = '2' 或者用户是否能够编辑此值并偷偷输入更高的数字,如3或4 感谢阅读。

我目前正在用Django编写一个应用程序,希望在用户会话期间存储特定的权限信息。权限由以下值组成:

  • 没有权限-0
  • 只读-1
  • 编辑-2
  • 添加和编辑-3
  • 完全许可-4
值越高,用户拥有的权限越好。如果用户对模块“Projects”只有“Edit”权限,我想将其存储在某个地方,这样我就不必让Django不断地查询数据库。是否适合使用以下内容:

request.session['project_permission'] = '2'
或者用户是否能够编辑此值并偷偷输入更高的数字,如3或4


感谢阅读。

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

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

Django sessions表还有一个名为“session_data”的列,该列存储散列会话数据(除非用户有权访问数据库,否则用户将无权访问该数据)

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

谢谢-我将回到绘图板并使其基于查询,除非您有其他更好的方法。如果您可以共享数据模型,我将能够推荐解决方案。用户对不同的项目有不同的权限吗?或者类似于用户“X”具有“只读”功能,因此他只能读取模型文件中的所有项目。实际上,用户连接到一个组和一个权限集。可以为其分配尽可能多的组/权限集。权限集定义用户将有权访问的内容,即项目。因此,是的,用户可以拥有不同的权限,这取决于分配给他们的组和其中的权限集。希望这是有意义的。您的数据模型非常庞大,我可能要花很多时间才能理解它们。无论如何,祝你的项目好运