Basta mantenere un controllo stretto sulle opzioni di sicurezza a livello globale (creazione di classi client, ecc ...), Opzioni di sicurezza a livello di classe (è possibile ad esempio disabilitare i client eliminando le voci di installazione. È anche comune disabilitare la creazione di campi utente per tutte le classi) e, soprattutto, controllare gli ACL.
In genere utilizzo i trigger beforeSave per verificare che gli ACL siano sempre corretti. Quindi, ad esempio, _Soggetti utente sono dove si trova l'email di recupero. Non vogliamo che gli altri utenti siano in grado di vedere le email di recupero degli altri, quindi tutti gli oggetti nella classe _User devono avere la lettura e la scrittura impostate solo dall'utente (con public read false e public write false).
In questo modo solo l'utente stesso può manomettere la propria riga. Gli altri utenti non noteranno nemmeno che questa riga esiste nel tuo database.
Un modo per limitarsi ulteriormente in alcune situazioni, è utilizzare le funzioni cloud. Supponiamo che un utente possa inviare un messaggio a un altro utente. È possibile implementarlo come un nuovo messaggio di classe, con il contenuto del messaggio e i puntatori all'utente che ha inviato il messaggio e all'utente che riceverà il messaggio.
Poiché l'utente che ha inviato il messaggio deve essere in grado di annullarlo e poiché l'utente che ha ricevuto il messaggio deve poterlo ricevere, entrambi devono poter leggere questa riga (quindi l'ACL deve disporre delle autorizzazioni di lettura per entrambi). Tuttavia, non vogliamo che nessuno di loro manomettere il contenuto del messaggio.
Quindi avete due alternative: o create un trigger beforeSave che controlla se le modifiche che gli utenti stanno cercando di fare su questa riga sono valide prima di accettarle, o impostate l'ACL del messaggio in modo che nessuno abbia permessi di scrittura e crei le funzioni cloud che convalida l'utente, quindi modifica il messaggio utilizzando la chiave master.
Il punto è che devi fare queste considerazioni per ogni parte della tua applicazione. Per quanto ne so, non c'è modo di aggirare questo.
Questo riguarda anche me. Ho trovato un paio di link (https://parse.com/questions/prohibit-user-from-changing-their-own-game-score e https://parse.com/questions/javascript-sdk-security). Penso che il sistema ACL di Parse sia probabilmente abbastanza sicuro per le esigenze della mia particolare app, ma penso che per alcuni altri usi, avrei bisogno di imparare più pratiche di sicurezza per cercare di bloccare le cose. – Ryan