如何将身份验证添加到(Python)扭曲的xmlrpc服务器
作者:互联网
我试图在不使用user:password @ host的情况下向xmlrpc服务器(将在P2P网络的节点上运行)添加身份验证,因为这将向所有攻击者显示密码.身份验证基本上是为了创建一个专用网络,防止未经授权的用户访问它.
我的解决方案是创建一个非常类似于this的质询响应系统,但我不知道如何将其添加到xmlrpc服务器代码中.
我发现了一个类似的问题(需要自定义身份验证的地方)here.
所以我尝试创建一个模块,只要客户端连接到服务器就会调用该模块.这将连接到在客户端上运行的质询 – 响应服务器,如果客户端正确响应将返回True.唯一的问题是我只能调用一次模块然后我得到一个反应堆无法重启错误.那么有没有一种方法可以在每次调用“check()”函数时连接并执行此操作?
最简单的事情是使用SSL连接吗?这会保护密码吗?虽然这个解决方案不是最佳的,因为我试图避免为所有节点生成SSL证书.
解决方法:
不要发明自己的身份验证方案.已经有很多很棒的方案,你不想负责对你的发明中存在哪些漏洞进行安全研究.
HTTP有两种非常广泛支持的身份验证机制(运行XML-RPC,因此它们适用于XML-RPC).一个是“基本”,另一个是“摘要”.如果您决定运行SSL,“基本”就可以了.如果您真的无法使用SSL,摘要更合适.
两者都由Twisted Web通过twisted.web.guard.HTTPAuthSessionWrapper支持,带有copious documentation.
标签:xml-rpc,python,authentication,twisted,challenge-response 来源: https://codeday.me/bug/20190826/1728277.html