2014-09-03 5 views
6

Ich habe in den letzten Monaten eine Anwendung (iOS und Web-App) auf Parse erstellt und habe gerade erst entdeckt, wie ihre Sitzungstoken funktionieren. Dies ist, was ich bisher gelernt haben:Session-Token-Sicherheit parse.com

  • Jeder Benutzer hat seine eigene Session-Token
  • Das Token wird verwendet, um die Benutzerdaten (für die Authentifizierung) zu ersetzen, wenn Anfragen an den Server
  • Das Token macht nie Änderungen (selbst wenn das Passwort zurückgesetzt wird) und nie abläuft
  • Das Token wird lokal auf der Clientseite gespeichert, wenn es eingeloggt ist
  • Benutzer kann mit der Methode Parse.User.become (sessiontoken, options) angemeldet werden, nur mit Sitzungstoken

Das scheint mir sehr unsicher, oder fehlt mir etwas? Es scheint, dass, wenn jemand dieses Token bekommt, sie ewigen Zugriff auf das Benutzerkonto haben, selbst wenn Benutzername und/oder Passwort geändert werden?

Danke,

Mario

+1

Wenn Token wirklich auf diese Weise funktioniert, dann ja - es sieht unsicheres tödlich. – Regent

+0

wahr; Denken Sie an die Webapps, die Sie verwenden, wo der Cookie so ziemlich das Gleiche macht ?? –

+0

Sie können die Option revokeSessionOnPasswordReset in der parse-server-Konfiguration verwenden –

Antwort

2

Ich habe überprüft auch die doppelte Session-Token von REST API & Android-Client zurückgegeben. Es ist das Gleiche. Auch nachdem ich das Passwort geändert habe.

Dies ist definitiv ein potenzielles Sicherheitsproblem. Jeder, der ein mobiles Gerät hat, wird gestohlen, der Hacker könnte das Sitzungstoken erhalten, wenn die Sitzung nicht verschlüsselt ist und die Sicherheit der Benutzerdaten für immer gefährdet ist.

Da der Hacker das Sitzungstoken von jedem Client für immer verwenden konnte. Du wirst nie wissen, wann der Hacker das Böse tun wird. Ich bin ernsthaft besorgt über das Problem. Hoffe jemand wird es ansprechen.

PS: Hallo Mario, ich habe ein Problem auf der Facebook Developer Platform protokolliert.

https://developers.facebook.com/bugs/309490399239393/

Hoffnung jemand wird es es schließlich verfolgen und lösen.

+0

Sie könnten diesen Beitrag bearbeiten, um zu der Diskussion umzuleiten, die Sie unter https://groups.google.com/forum/#!topic/parse-developers/qjvKJYikHQ8 aufgerufen haben, und ich werde das tun akzeptiere es als Antwort. Vielen Dank! – Mario

+1

Scheint, dass der Benutzer "Sitzungstoken" wirklich die Datenbank-ID des Benutzerdatensatzes in Parse ist. Wenn das der Fall ist, besteht das Problem nicht darin, dass es sich nie ändert, sondern dass Sie der Benutzer ohne eine Authentifizierungsbarriere werden können. – wberry