2013-09-25 4 views
11

Ich versuche, meine Spielanwendung zu sichern, aber ich habe keine Ahnung, wo ich anfangen soll. Im Spiel Tutorial habe ich kein Kapitel zu diesem Thema gefunden. Soweit ich sehe, ändert sich das Sicherheitsthema zwischen den Play-Versionen. Also, was benutzt ihr, um Eure Anwendungen zu sichern? Ich bin neu in Play, also bitte vergib mir, wenn ich offensichtliche Fragen stelle.Sicherheit im Spiel 2.2.x

Bearbeiten: Ok, maby Frage war nicht klar genug (das tut mir wirklich leid). Wenn ich über Sicherheit spreche, meine ich, dass ich etwas brauche, um mit den Anmeldeinformationen und dem Tool des Benutzers umzugehen, was mir erlaubt, den Zugriff auf einige Seiten und schließlich auf einige Ruheaktionen in meiner Anwendung zu beschränken.

Edit2: Ich werde Deadbolt2 jetzt versuchen und wir werden sehen, wie es funktioniert. Aber ich beschwöre Sie immer noch, um Ihr Wissen über Play Sicherheit mit anderen zu teilen :)

+0

Was meinen Sie mit der Sicherung Ihrer Anwendung? Hinzufügen eines Passwortschutzes zu einigen Seiten? Einen ganzen Ordner schützen? Vermeiden Sie Sicherheitsprobleme wie SQL-Injections, Cross-Site-Scripting, ...? – ffarquet

+0

Antworten je nachdem, was wirklich die Frage ist: 1) beschäftigen sich mit Sitzungen, Cookies, ... 2) htaccess 3) play Framework vermeidet solche Dinge, wenn Sie es richtig verwenden – ffarquet

+0

Sie haben zwei Möglichkeiten: definieren [Filter] (http : //www.playframework.com/documentation/2.2.x/ScalaHttpFilters) oder eigene Aktion - siehe @Mikesname Antwort –

Antwort

4

Die Dokumentation scheint immer noch ein bisschen glanzlos zu diesem Thema, aber im Wesentlichen Authentifizierung/Autorisierung Funktionalität wird in der Regel mit Aktion Zusammensetzung durchgeführt, die ist die Grundlage für wiederverwendbaren Controller-Code in Play. Es ein Beispiel here (auch aus den docs verbunden, die die allgemeinen Idee gibt Ihnen helfen soll.)

Action-Zusammensetzung im Play 2.2.x wird mit ActionBuilders getan. Diese nehmen einen Block an, der eine Anfrage annimmt und eine Future[SimpleResult] zurückgibt. Auf diese Weise können die Aktion Builder entweder den gegebenen Block ausführen oder zurückgeben eine andere Future[SimpleResult] (sagen wir, ein Unauthorized in dem Fall, dass die Anmeldeinformationen des Benutzers nicht überprüfen hat.)

In unserer App verwenden wir das Play2-auth Modul zur Authentifizierung Handling mit Sitzungscookies. Dies wurde (nur) für die Arbeit mit Play 2.2.x aktualisiert, verwendet aber einen etwas anderen Mechanismus für die Aktionskomposition (stackable controllers.) Sie können am besten herausfinden, wie die genaue Funktionalität, die Sie benötigen, mit den nativen Framework-Tools erreicht werden kann eine Abhängigkeit hinzufügen.

+0

Vielen Dank für Ihre Antwort. Ich habe gerade über Play2-Auth gerötet und sie sagen, dass Deadbolt2 für Java und Play2-Auth für Scala ist, aber es ist nicht wahr. Deadbolt2 ist auch für Scala. Also werde ich das versuchen (Deadbolt2) und wir werden sehen, wie es funktioniert. – user1887701

1

Zugriffskontrolle, Sicherheit usw. ist ein sehr weites Thema, weil es je nach Kontext sehr unterschiedliche Dinge bedeutet. Dies mag einer der Gründe sein, warum Play wenig Dokumentation dafür hat, was mich auch am Anfang verwirrte.

Play2 hat einige security helpers, nämlich es ist die Authenticated Methode, für einige Einblicke, wie man es benutzt, überprüfen Sie die Kommentare im Quellcode. Es ist eine einfache Methode, die Sie selbst implementieren können, und die meisten tun es. Es schlägt im Wesentlichen nur eine Struktur vor, wo Sie Ihre Methoden platzieren können, um zu überprüfen, ob die Anfrage authentifiziert ist und was zu tun ist, wenn sie nicht authentifiziert wird.

Play2 verfügt auch über eine Verschlüsselungslogik, die zum Signieren von Cookies verwendet wird.

Das ist es, Sie haben keine vorgefertigten Sicherheitsstrukturen mehr, aber das ist eine gute Sache, weil Sie nicht wollen, dass das Framework solche Entscheidungen für Sie trifft, wenn es nicht weiß, in was Kontext wird es verwendet werden.

Was ist wichtig ist zu gehen und zu erforschen, wie für Ihre Anwendung relevante Angriffe durchgeführt werden, Best Practices und so weiter. Ich empfehle OWASP, insbesondere die OWASP Cheat Sheets. Wenn die Liste der Spickzettel einschüchternd erscheint, beginnen Sie mit the OWASP Top Ten Cheat Sheet. Die große Menge an Informationen, es ist sehr nützliches Wissen.

2

Ich stimme den anderen Antworten zu, aber füge einfach hinzu, dass ich securesocial verwende, um mich mit anderen Auth-Providern (Google, FB, etc ...) zu integrieren.), also muss ich nicht selbst authentisieren. Es ist ziemlich einfach, aufzustehen und zu laufen.

https://github.com/jaliss/securesocial