Я сделал набор клиент-серверных программ XMLRPC на python и настроил небольшой метод для аутентификации моих клиентов.Тем не менее, после написания практически всего этого, я понял, что после аутентификации клиента установленный для него флаг становится глобальным в моем классе, то есть, пока один клиент проходит проверку подлинности, все клиенты проходят проверку подлинности.Я не знаю почему, но у меня сложилось впечатление, что всякий раз, когда SimpleXMLRPCServer подключается клиентом, он создает новый набор переменных в моей программе.
По сути, теперь он настроен так:
class someclass:
authenticate(self, username, pass):
#do something here
if(check_for_authentication(username, pass))
self.authenticated=True
other_action(self, vars):
if authenticated:
#do whatever
else:
return "Not authorized."
server=SimpleXMLRPCServer.SimpleXMLRPCServer("0.0.0.0", 8000)
server.register_instance(someclass())
server.serve_forever()
Мне нужен любой способ взломать это в том, что я ищу (т. Е. Флаг для аутентификации должен быть установлен для каждого клиента, которыйподключается) или другой протокол, который может сделать это более легко.После некоторых поисков я посмотрел на крученый, но так как это уже написано, я бы предпочел изменить его, чем переписывать.Я знаю, что сейчас я всегда могу получить имя пользователя и пароль от клиента, но в интересах ресурсов (аутентификации при каждом запросе) и экономии пропускной способности (которую имеют некоторые из моих клиентов в очень ограниченных количествах), я былучше не делать этого.
Кроме того, я впервые пытаюсь защитить что-то подобное (и я не обучен безопасности в Интернете), поэтому, если я пропускаю какую-то явную ошибку в моей логике, пожалуйста, сообщите мне,По сути, я не могу, чтобы кто-то отправлял мне поддельные переменные в "other_actions"