Wenn Sie sich bei einem anderen fremden Konto anmelden müssen, benötigen Sie dessen Benutzernamen und Passwort. Daran führt kein Weg vorbei. Sie können 1 sup> nicht hashen oder verschlüsseln, Sie benötigen die einfachen Werte.
Das ist natürlich ein Albtraum, da die Benutzer Ihnen ihre Anmeldeinformationen mitteilen müssen. Sie vertrauen darauf, dass Sie sie nicht missbrauchen. Angenommen, Sie missbrauchen sie nicht absichtlich (wie den Verkauf auf dem Schwarzmarkt als Teil Ihres Geschäftsmodells), müssen Sie Leckagen verhindern. Dazu gehört, dass Datenverletzungen in Ihrer Infrastruktur oder bei Datenbankadministratoren darauf zugreifen können. Die beste Vorgehensweise hier wäre also, sie überhaupt nicht zu speichern . Die Aufgabe Ihres Unternehmens besteht darin, dem Benutzer beim Ausfüllen von Formularen zu helfen und keinen Passwort-Manager-Service bereitzustellen. " den Benutzern das Erinnern zu erleichtern" ist nicht Ihre Aufgabe.
Eine Lösung könnte darin bestehen, eine Browsererweiterung zu schreiben, die Ihre Benutzer installieren können. Sie melden sich selbst auf ihrem Computer bei diesem ausländischen Konto an, und Ihr Plugin erledigt dort seine Arbeit. Ihr Server kommt nicht einmal mit den Anmeldeinformationen in Kontakt. (Natürlich muss der Benutzer der Erweiterung weiterhin vertrauen, um sie nicht auszuspionieren.)
Wenn dies keine Option ist und die Arbeit, einschließlich der Anmeldung, auf Ihrem Server ausgeführt werden muss, sollten Sie dies dennoch tun Speichern Sie die Benutzeranmeldeinformationen nicht. Leiten Sie sie einfach an den fremden Anmeldedienst weiter und speichern Sie das Sitzungstoken, das mit der API verwendet werden soll, nur so lange in Ihrer Datenbank, wie Sie es benötigen. Wenn die Datenbank verletzt wird, kann der Angreifer möglicherweise die Sitzungen entführen (schlimmer noch), erhält jedoch kein Klartextkennwort. Lassen Sie den Benutzer die Anmeldeinformationen erneut angeben, wenn sich Ihr Server mehrmals anmelden muss.
1: Natürlich sollten Sie immer vertrauliche Daten verschlüsseln, wenn Sie sie irgendwo speichern, aber Letztendlich muss sich der Schlüssel dazu irgendwo auf Ihrem Server befinden, auf den möglicherweise auch ein mutmaßlicher Angreifer Zugriff hat. sub>