我正在编写用于管理nginx(域名,重写等),svn和其他服务的面板。为此,我写的后端将在root上工作(更改nginx配置,重新加载,更改用户密码等),以及客户端(控制台客户端和Web应用程序)。
App适用于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?对于网络界面,我不必 - 网页拥有它自己的授权,所以我可以发送一些密钥,对每个没人知道的用户都有效。 问题是如果有人可以访问ssh。然后,他可以编写将欺骗用户名的简单客户端,然后他可以更改其他用户配置。
那么,我如何才能为用户提供正确的授权?
答案 0 :(得分:1)
不要重新发明轮子。 ;)我发现这个讨论很有启发性: