2011-10-14 15 views
6

Sono nuovo nel mondo del coffeescript (javascript). Attualmente sto costruendo la mia prima app backbone.js che comunica con un back-end Rails su SSL.Sicurezza in backbone.js?

Nel corso degli anni mi è stato detto più volte che "la sicurezza JavaScript fa schifo, quindi se possibile esegui tutta la logica lato server". Ho un controllo sulla sicurezza lato server, ma per quanto riguarda il client?

È possibile che alcuni dei miei modelli di backbone contengano informazioni che gli utenti desiderano proteggere.

Aggiornamento 1: In risposta a @Nupul, desidero proteggere le tuple di (integer, string, datetime). Nulla che possa compromettere qualsiasi sistema remoto.

Aggiornamento 2: Quindi l'unica cosa di cui essere a conoscenza è fornire gli stessi dati a backbone che si consideri sicuri da fornire in una vista HTML js-free?

+0

Non sono sicuro di cosa desideri proteggere in primo luogo ... i dati nei modelli sono solo dati variabili/contenuti manipolati sul lato client ... ciò che trasmetti sarà probabilmente su SSL quindi io non sono sicuro di cosa vuoi veramente proteggere? Prova a criptare tutto nei modelli, se è una preoccupazione, ma ti renderai subito conto che è eccessivo, con prestazioni basse e probabilmente non ne vale la pena :) – PhD

+0

@Alex: re: ** Aggiornamento 2 **: Sì, è così destra. –

+0

@JeremyBanks Grazie! –

risposta

11

La sicurezza JavaScript, nel senso che intendi, non fa solo schifo, è letteralmente impossibile. È impossibile il codice di fiducia eseguito sul client. Dovrai strutturare il tuo programma in modo tale che il tuo server non invii mai le informazioni al computer di un cliente a meno che tu non voglia che sia in grado di vederlo.

+5

Per un utente malintenzionato di vedere i dati nel modello dell'utente su SSL lui/lei deve stare seduto "sulla macchina dell'utente che fissa la pagina, essere abile a leggere il javascript e il debugging per dare un'occhiata ai contenuti e sapere backbone.js – PhD

+0

@Alex: su una nota seria, che cosa vuoi proteggere? – PhD

+0

Sì, @jeremybanks ha assolutamente ragione qui, "Non si può fidarsi del codice che si esegue sul client" deve sempre implementare controlli di sicurezza sul lato server senza nemmeno pensare che i controlli di sicurezza sul lato client ignorino totalmente tali controlli. –