Frage

, fragte ich eine ähnliche Frage hier eine Weile zurück, aber alle die Antworten OpenID anboten, das ist schön, aber es funktioniert nicht mit Dienstleistungen, die eine Authentifizierung erfordern, die es nicht (wie Eventbrite) verwenden.

sagen, ich will eine App, dass die Listen Ihre Veranstaltung von Ereignisse briten erstellen und deren Analytik (der Eventbrite enthält). Jede Person kann für diesen Dienst anmelden, um ihre Veranstaltungen auflisten. Aber da Eventbrite nicht OpenID haben zu authentisieren, muss ich irgendwie den Benutzernamen und das Passwort bekommen Eventbrite.

Einige mögliche Lösungen sind:

  1. Shop-Anmeldeinformationen in YAML wie diese . Leicht hackable.
  2. Haben Sie Benutzer in Anmeldeinformationen in ein Formular auf meiner Website eingeben und ich spare den Anmeldeinformationen zu meiner Datenbank, und verwenden Sie sie auf Eventbrite einzuloggen. Leicht hackable.
  3. Haben Benutzer eingeben Anmeldeinformationen und ich sie direkt an Eventbrite, ohne zu speichern, und ich spare den Antwort-Header-Plätzchen auf die Datenbank, und wenn sie auslaufen, haben sie wieder anmelden. Ist dies leicht hackable?

Dieser hypothetische Service will auch automatisch Ereignisse überprüfen (sagen über cron), so dass es nicht auf dem Benutzer auf meiner Website über den Browser gehen abhängt. So Cookies oder credientials müssen gespeichert irgendwo werden.

Die Sache ist, danach zu fragen ähnliche Frage über die Vertraulichkeit und Sicherheit es klingt wie Sie sollten nie eine Anwendung erstellen, das tut, was ich beschreibe. Es muss eine Möglichkeit geben, etwas zu bauen, wie dies in Ordnung ist.

Was ist das so? Was vermisse ich? Ist es in Ordnung, mit # 3 und speichern Sie die Cookies zu gehen (aber immer noch die Benutzer benötigen, um ihre E-Mail einreichen / Passwort über ein Formular, das ich Brite senden)? Was ist eine akzeptable Lösung für das Problem?

War es hilfreich?

Lösung

Es gibt keine sichere Art und Weise, dies zu tun. Sie können Abhilfen verwenden, aber das ist es.

  1. Speichern von Kennwörtern in YAML oder XML unverschlüsselt ist definitiv out
  2. In der Tat, auch die Verschlüsselung und Speicherung von Passwörtern ist falsch. Ihre Anwendung muss eine Möglichkeit, die Passwörter entschlüsseln, so dass der Angreifer auch die Passwörter entschlüsseln kann.
  3. Die empfohlene Methode zum Speichern von Passwörtern ist Salz + Hash, sondern weil es nicht behebbar wird, ist es in Ihrem Fall nutzlos.
  4. Durch 2 & 3, unabhängig davon, wo Sie die Benutzer-Anmeldeinformationen speichern, sind Sie anfällig.
  5. Die Speicherung der Cookies anstelle der Passwörter ist eine bessere Idee. Aber auch hier handelt es sich dabei das Passwort über Ihre Website gehen, was nicht gut ist.

Ihre Situation gegeben, die Cookie-Speicherung ist ein besserer Ansatz. Verwenden Sie HTTPS überall, auch auf Ihrer Webseite ein. Seine weniger als ideal aber, und Sie und Ihre Nutzer sollten sich dessen bewusst sein.

Andere Tipps

Eventbrite hat kürzlich veröffentlicht neue Dokumentation beschreibt wie OAuth2.0 für Cross-Site-Benutzerauthentifizierung implementieren . Ich würde empfehlen, unsere Verwendung von JavaScipt-basierten OAuth2.0 Widget , die den Authentifizierungs-Token des Benutzers speichert in ihrem Browser localstandardmäßig. Da die Auth-Token in dem Browser des Benutzers gespeichert werden und daran gehindert werden, von anderen Domänen zugegriffen wurde, ist es nicht wahrscheinlich, dass es Sicherheitslecks wäre.

Die Notwendigkeit für E-Mail und Passwort Combos sind in diesem Authentifizierungsschema vollständig vermieden werden.

Nur meisten Websites direkte Login mit dem ursprünglichen Klartextpasswort unterstützen, so dass Sie erhalten haben, zu speichern und liefern auch. Und ich würde nie Sie mit dem Vertrauen. Das Problem mit dem Konzept ist, dass Sie das Passwort erforderlich an Dritte gegeben werden. Die Lösung wird nicht durch einen Dritten beinhalten, zum Beispiel mein Browser ist ziemlich gut bei Speichern und automatisch in Passwörter für mich Füllung (meine Festplatte ist durch ein Passwort zu schützen). Und sie sind Dutzende von anderen Passwort Wallet-Apps zu. Ich würde nichts gewinnen und abonniert, Ihren Service.

Bevor solch ein Geschäft gehen in, halten Sie die # 1 Ziel sein werden. Facebook, Google sind paranoid unglaublich über Sicherheit, viel Zeit, Geld und Mühe zu verbringen die Anmeldungen sicher zu halten. Haben Sie die gleichen Ressourcen? Dann sind Sie ein besseres Ziel. Auch von Ihrem Service-Hacking, sie sofort mehrere Konten, Passwörter Ihrer Benutzer erhalten, auch zu sehen, wer immer das Passwort wird erneut verwenden.

Für den Eventbrite-API arbeitet, würde ich empfehlen, dass alle Verbindungen über SSL sind, und dass Sie authentifizieren, um eine user_key ist eher als ein Benutzername und Passwort.

Weitere Informationen zur Authentifizierung für die Eventbrite-API ist hier: http://developer.eventbrite.com/ doc / auth /

Nach der Anmeldung können Benutzer ihre user_key finden Sie hier: http://www.eventbrite.com/userkeyapi

Dies sollte verhindern, dass Benutzername und Passwort weiteren Informationen über den Draht abgefangen werden, oder von einem lokalen Datenspeicher lesen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top