Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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
使用python后端的客户端授权_Python_Security_Sockets_Authorization - Fatal编程技术网

使用python后端的客户端授权

使用python后端的客户端授权,python,security,sockets,authorization,Python,Security,Sockets,Authorization,我正在编写管理nginx(域、重写等)、svn和其他服务的面板。为此,我编写的后端将在root(更改nginx配置、重新加载、更改用户密码等)和客户端(控制台客户端和web应用)上工作 该应用程序在unix套接字上工作,我为其制定了非常简单的协议: \0\0\0\0user\0key\0module\0command\0data\0 这很简单。客户端将命令和数据发送到后端,fox ex: \0\0\0\0morsik\0\0nginx\0add_domain\0www.domain.tld s

我正在编写管理nginx(域、重写等)、svn和其他服务的面板。为此,我编写的后端将在root(更改nginx配置、重新加载、更改用户密码等)和客户端(控制台客户端和web应用)上工作

该应用程序在unix套接字上工作,我为其制定了非常简单的协议:

\0\0\0\0user\0key\0module\0command\0data\0
这很简单。客户端将命令和数据发送到后端,fox ex:

\0\0\0\0morsik\0\0nginx\0add_domain\0www.domain.tld something\0
问题是,如何验证用户是否真的是morsik?对于web界面,我不必这样做——web页面有自己的授权,这样我就可以发送一些密钥,这些密钥将适用于没有人知道的每个用户。 问题是是否有人可以访问ssh。然后他可以编写一个简单的客户端来欺骗用户名,然后他可以更改其他用户配置


那么,我如何才能为用户进行正确的授权呢?

不要重新发明轮子我觉得这次讨论很有启发性:

  • 解释套接字身份验证的概念
  • 有用的细节
  • 这也可能有效,尽管不太方便
  • 仅为应用程序管理员创建组等

您可能想先学习布鲁斯·施奈尔的《应用密码学》一书。很可能您将不得不使用具有相同密钥的HMAC。HMAC看起来很有趣,但如果密钥是公开的,则仍有可能伪造数据。因为这是python脚本,所以它必须是公共的。。。或者有其他方法来储存钥匙?我想我知道怎么做。这将是一个为用户使用私钥的系统。用户将拥有.serveradmin.key和自己的400 chmod密钥,因此其他用户不会读取该密钥。此外,服务器将包含带有有效密钥和用户的users.db文件(当然是root:root 400)。在www上,它可以存储在数据库中(MySQL、PostgreSQL等)。当结果生效时,我会发布它。这对我没有多大帮助。我知道如何在python中使用unix身份验证。问题是如何在不输入密码的情况下验证数据包是否损坏(如果sb登录到ssh,他可能不想输入pass…)。第一篇链接文章对此进行了详细讨论。根据您的第一个链接:>>“客户端程序-”取消“或”lp“在这种情况下,或者任何使用libcups进行打印对话框的程序,例如Evince文档查看器,都可以通过域套接字将其UID(对应于用户名的数字ID)传递给服务器。因此,UID可能会在此处被欺骗。““内核保证以这种方式传递的凭据不会被伪造。”reading提到“man unix 7”。也许这可以给你完成的线索。找到另一个链接,添加。应该可以让你大部分的方法。然后从uid中获取用户名并与给定的匹配。