Ich arbeite am Schreiben einer privaten REST API mit Play! dass ich von einer mobilen Anwendung aus anrufen werde und ich bin verwirrt, wie ich es sicher halten kann.Sicherheit mit Play! von Outside Application
Bei der Arbeit mit dem Beispiel "Yet Another Blog Engine" in Play! 'S Dokumentation habe ich ihre authentication example durchgearbeitet und es geht um die Anmeldung über einen Browser. Soweit ich das Play! -Sicherheitsmodul verstanden habe, hilft es bei Browsersitzungen. Darüber hinaus wurde jede StackOverflow-Frage, die ich gesehen habe, in ein Administrationsmodul im Web integriert, und die Fragen beziehen sich auch auf Sitzungen.
Does the Play! framework have any built in mechanism to prevent session hijacking?
Enforce Https routing for login with play framework
Mein gegenwärtiges Verständnis dafür, wie die Sicherheit funktionieren soll:
- Die mobilen App "anmeldet", um den Web-App und eine Art von Token
- erhält Bei jedem folgenden Aufruf wird das Token an das Ende des API-Aufrufs angehängt
- Wenn das Mobiltelefon verwendet r „abmeldet“ oder das Token abgelaufen ist, entfernt der Web-App das Token
- Jeder API-Aufruf HTTPS verwendet, um Sicherheit
Ist es möglich zu halten, für mich eine HTTP-Anforderung von der mobilen Anwendung zu machen Die Webanwendung, die ich mit Play erstellt habe! Framework, während es sicher bleibt?
Bin ich die ganze Situation falsch?
Dies ist das erste Spiel! App, die ich erstellt habe und das ist das erste Mal, dass ich Heroku benutzt habe. Ich bin nicht zu weit entfernt, dass ich dagegen wäre, zu etwas anderem zu wechseln, wenn es wesentlich einfacher/effizienter/besser geeignet wäre, dieses Problem zu lösen.
EDIT: Auch in Play! YABE Tutorial scheint es, als ob sie das Passwort im Klartext überprüfen. Was ist aus allgemeiner Sicht kein Sicherheitsproblem?
EDIT 2: Ich habe über OAuth Anbieter Informationen und es scheint das Problem zu lösen. Meine einzige Befürchtung ist, dass v2.0 bekannte Sicherheitslücken hat und v1.0 kompliziert zu implementieren ist, wenn ich nur eine sichere Verbindung zwischen einer mobilen App und einer Web-App brauche. Wenn ich jeden Aufruf SSL benötigen würde, könnte ich jede Play-Methode dazu bringen, Benutzernamen und Passwort als Parameter zu verwenden und OAuth vollständig zu ignorieren?
„in Play 's YABE Tutorial, es scheint, als ob sie das Passwort im Klartext überprüfen "- hängt davon ab, was Sie mit Klartext meinen. Wenn es über HTTPS ist, ist es kein Problem, das Passwort in einer Anfrage zu senden. Wenn sie das Passwort in der Datenbank im Klartext speichern, ist das schlecht. Schade, wenn Tutorials aus Gründen der Einfachheit die grundlegende Sicherheit komplett ignorieren. – Nick
Von den Links, die Sie verwendet haben, sieht es so aus, als ob Sie Play 1.x verwenden. Irgendein Grund, warum du nicht mit 2.x gehst? – Nick
Heroku verwendet standardmäßig Play 1.2.4. Ich kenne keinen Grund, es zu aktualisieren, und die Zeit ist das Wichtigste in Bezug auf die mobile App. – eliot