Como enviar a senha para o serviço REST de forma segura?

estou usandoFrasco-repousante para construir um serviço REST. O dispositivo iOS se conectará a esse backend do REST para sincronizar os dados locais.

O serviço será acessado por umhttps conexão.

O serviço REST é sem estado e o usuário deve autenticar a cada solicitação. Assim, o nome de usuário e a senha serão enviados em formato claro para o serviço REST. O back-end irá alterar a senha e verificar a senha com hash existente no banco de dados.

api.add_resource(Records, '/rest/records/<string:email>/<string:password>/<string:ios_sync_timestamp>')

Agora, um problema que vejo com essa abordagem é que o nome de usuário e a senha estão em formato claro como parte do URL GET. O log do servidor obviamente rastreará isso. Agora, se meu backend já foi invadido, os arquivos de log comprometeriam todos os nomes de usuários e senhas.

Qual é a melhor solução para isso? Eu estava pensando em enviar nome de usuário e senha como argumentos do POST, mas como faço isso com solicitações GET?

class Records(Resource):
    def get(self, email, password, ios_sync_timestamp):
        pass
    def post(self, email, password, ios_sync_timestamp):
        pass

questionAnswers(2)

yourAnswerToTheQuestion