¿Cómo enviar la contraseña al servicio REST de forma segura?

estoy usandoFrasco en reposo para construir un servicio REST. El dispositivo iOS se conectará a este backend REST para sincronizar los datos locales.

Se accederá al servicio a través de unhttps conexión.

El servicio REST no tiene estado y el usuario tiene que autenticarse en cada solicitud. Por lo tanto, el nombre de usuario y la contraseña se enviarán en un formato claro al servicio REST. El backend hará un hash de la contraseña y verificará la contraseña de hash existente en la base de datos.

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

Ahora, un problema que veo con este enfoque es que el nombre de usuario y la contraseña están en un formato claro como parte de la URL de GET. El registro del servidor obviamente hará un seguimiento de esto. Ahora, si mi backend fuera hackeado, los archivos de registro pondrían en peligro todos los nombres de usuario y contraseñas.

¿Cuál es la mejor solución para esto? Estaba pensando en enviar un nombre de usuario y una contraseña como argumentos POST, pero, ¿cómo puedo hacerlo con las solicitudes GET?

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

Respuestas a la pregunta(2)

Su respuesta a la pregunta