2013-09-25 13 views
11

Sto provando a proteggere la mia applicazione di gioco ma non ho idea da dove iniziare. Nel tutorial di gioco non ho trovato alcun capitolo su questo argomento. Per quanto vedo l'argomento della sicurezza sta cambiando tra le versioni di gioco. Quindi, cosa state usando per proteggere le vostre applicazioni. Sono nuovo in Play quindi ti prego di perdonarmi se sto facendo domande ovvie.Security in Play 2.2.x

Edit: Ok, domanda maby era't abbastanza chiaro (mi dispiace davvero che circa). Quando parlo di sicurezza intendo che ho bisogno di qualcosa per gestire le credenziali degli utenti e lo strumento che mi consente di limitare l'accesso ad alcune pagine e infine alcune azioni di riposo nella mia applicazione.

Edit2: Proverò deadbolt2 ora e vedremo come funziona. Ma vi incoraggio ancora a condividere le vostre conoscenze sulla sicurezza di Play con gli altri :)

+0

Che cosa si intende per garantire la sua applicazione? Aggiunta di una protezione con password ad alcune pagine? Proteggi un'intera cartella? Evitare problemi di sicurezza come iniezioni SQL, cross-site scripting, ...? – ffarquet

+0

Le risposte a seconda di quale sia realmente la domanda sono: 1) gestire le sessioni, i cookie, ... 2) htaccess 3) Il framework di gioco eviterà queste cose se lo usi correttamente – ffarquet

+0

Hai due possibilità: definire [filtro] (http : //www.playframework.com/documentation/2.2.x/ScalaHttpFilters) o propria azione - vedi @Mikesname answer –

risposta

4

La documentazione sembra essere ancora poco brillante su questo argomento, ma in sostanza, la funzionalità di autenticazione/autorizzazione viene solitamente eseguita utilizzando la composizione Action, che è la base del codice del controller riutilizzabile in Play. Esiste un esempio here (anche collegato dallo docs che dovrebbe aiutarti a darti un'idea generale)

La composizione dell'azione in Play 2.2.x viene eseguita utilizzando ActionBuilders. Questi prendono un blocco che accetta una richiesta e restituisce un Future[SimpleResult]. Questo permette al costruttore di azione per uno eseguire il blocco specificato, o restituire un diverso Future[SimpleResult] (ad esempio, un Unauthorized nel caso in cui le credenziali di un utente non ha il check-out.)

Nella nostra applicazione abbiamo utilizzare il modulo Play2-auth per gestire l'autenticazione con i cookie di sessione. Questo è stato (appena) aggiornato per funzionare con Play 2.2.x ma utilizza un meccanismo leggermente diverso per la composizione delle azioni (stackable controllers). Potrebbe essere meglio capire come è possibile ottenere la precisa funzionalità di cui si ha bisogno usando gli strumenti del framework nativo prima aggiungendo una dipendenza ad esso.

+0

Grazie per la risposta. Ho appena rosso su Play2-auth e dicono che deadbolt2 è per Java e Play2-auth è per scala ma non è vero. Deadbolt2 è anche per scala. Quindi proverò con quello (deadbolt2) e vedremo come funziona. – user1887701

1

Il controllo degli accessi, la sicurezza, ecc. È un argomento molto ampio, perché significa cose molto diverse a seconda del contesto. Questo potrebbe essere uno dei motivi per cui Play ha una scarsa documentazione per questo, cosa che mi ha lasciato perplesso all'inizio.

Play2 ha qualche security helpers, ovvero è il metodo Authenticated, per alcune informazioni su come utilizzarlo, controllare i commenti nel codice sorgente. È un metodo semplice che potresti implementare tu stesso e la maggior parte. In sostanza, propone solo una struttura dove collocare i metodi che verificherebbe se la richiesta è autenticata e cosa fare se non lo è.

Play2 ha anche qualche logica di crittografia, che viene utilizzata per la firma dei cookie.

Questo è tutto, non hai più strutture di sicurezza predefinite, ma questa è una buona cosa, perché non vuoi che il framework prenda decisioni del genere per te, se non sa in cosa contesto sarà usato.

L'essenziale è andare e ricercare come vengono eseguiti gli attacchi rilevanti per la vostra applicazione, le migliori pratiche e così via. Raccomando di andare a OWASP, in particolare lo OWASP Cheat Sheets. Se l'elenco di Cheat Sheets sembra intimidatorio inizia con the OWASP Top Ten Cheat Sheet. Non importa il grande volume di informazioni, è una conoscenza molto utile.

2

Sono d'accordo con le altre risposte, ma aggiungo che uso Securesocial per l'integrazione con altri provider di autenticazione (google, FB, ecc.), quindi non devo autenticarmi da solo. È abbastanza facile da far funzionare.

https://github.com/jaliss/securesocial

Problemi correlati