Should the password be plain text when creating a user through the API?

AI-generated summary

Summary of Discussion on Password Security in Discourse API

A discussion was initiated by mikeredick regarding the security concern of passing plain text passwords when creating a user through the Discourse API. mpalmer explained that using SSL is considered sufficient to protect secrets in-flight, but Siddhu_Dhangar suggested passing an encrypted or hashed password instead. However, mpalmer clarified that hashing is not a supported configuration due to its changing mechanism within Discourse. mpalmer also pointed out that if someone has access to the endpoint, they can still capture the password. RGJ mentioned that if SSO is enabled, the password is not used, and spirobel suggested certificate pinning to prevent man-in-the-middle attacks.

I’m creating a small windows application that will use Discourse as the SSO provider. The first step in that chain is allowing the app to create a user through the Discourse API.

I’ve got that working, however it seems that the password for the user is passed in plain text and I’m wondering why that is? It seems like that could be a security issue… is the thought just that people should use SSL and that’s good enough to protect the password?

Yes, SSL is considered sufficient to protect secrets in-flight. Until the world sees the light and switches to something like TLS-SRP, sharing secrets over a secured channel are pretty much all we’ve got to work with.

Können wir stattdessen ein verschlüsseltes Passwort anstelle eines Klartext-Passworts senden?

Gibt es eine Möglichkeit, ein verschlüsseltes Passwort anstelle eines Klartextpassworts zu übergeben? Wir entwickeln eine App, in der wir die /session-API zur Authentifizierung der Benutzer verwenden, wobei Benutzername und Passwort übermittelt werden müssen. Mir ist aufgefallen, dass man beispielsweise in den Entwicklertools des Browsers das Klartextpasswort sehen kann, das wir beim Einloggen übermitteln. Wenn also jemand Zugriff auf meinen Laptop hat, könnte das Passwort gestohlen werden, oder?

Wenn SSO aktiviert ist, wird das Passwort überhaupt nicht verwendet, sodass dies kein Problem darstellt. Geben Sie einfach einige zufällige Zeichen ein.

Wenn du den zusätzlichen Aufwand betreiben möchtest, kannst du in deiner App Certificate Pinning implementieren, um Man-in-the-Middle-Angriffe zu verhindern.

Solange du TLS verwendest, werden Passwörter verschlüsselt übertragen. Wenn du kein TLS verwendest, bist du unabhängig davon auf einem schnellen Zug ins Verderben.

Falls du „gehasht