Jak bezpiecznie wysłać hasło do usługi REST?
ja używamFlask-Restful zbudować usługę REST. Urządzenie z systemem iOS połączy się z tym zapleczem REST, aby zsynchronizować dane lokalne.
Usługa będzie dostępna przez ahttps połączenie.
Usługa REST jest bezstanowa i użytkownik musi uwierzytelnić się przy każdym żądaniu. W związku z tym nazwa użytkownika i hasło zostaną wysłane w formacie czytelnym do usługi REST. Backend będzie mieszał hasło i sprawdzał z istniejącym hashed hasłem w bazie danych.
api.add_resource(Records, '/rest/records/<string:email>/<string:password>/<string:ios_sync_timestamp>')
Teraz jednym z problemów, które widzę w tym podejściu, jest to, że nazwa użytkownika i hasło są w jasnym formacie jako część adresu URL GET. Dziennik serwera oczywiście to śledzi. Gdyby mój backend został kiedykolwiek włamany, pliki dziennika naraziłyby wszystkie nazwy użytkowników i hasła.
Jakie jest najlepsze rozwiązanie tego problemu? Myślałem o wysłaniu nazwy użytkownika i hasła jako argumentów POST, ale jak to zrobić w przypadku żądań GET?
class Records(Resource):
def get(self, email, password, ios_sync_timestamp):
pass
def post(self, email, password, ios_sync_timestamp):
pass