Come proteggere la mia implementazione REST per un'app ember.js

4

Ho cercato e cercato ciò che sembra giorni e non ho trovato una risposta definitiva su una soluzione al mio problema.

Per spiegare senza entrare nei dettagli terribili sto costruendo un negozio, questo negozio NON ha un sistema di carrelli, quindi l'utente acquisterà un oggetto alla volta, possibilmente con un sistema di quantità ma questo è a parte il punto, sarà anche NON disponi di un sistema di accesso o di registrazione per gli utenti.

Nel reparto pagamenti accettabili ci affidiamo a Stripe con PHP e ajax, quindi gestiamo quella parte, abbiamo utilizzato il precedente su SSL con grande successo e sono fiducioso nelle sue capacità di sicurezza.

Quando le cose diventano un po 'confuse è quando mi collego al mio backend sever che mi sta servendo oggetti json che fanno riferimento a prodotti. Quando un utente effettua un acquisto, vorremmo ovviamente rimuoverlo dalla quantità di quell'elemento nel database. Per il momento, durante la parte di dimostrazione del concetto di questa build, ho utilizzato Parse e un ottimo Parse Adapter che qualcuno ha creato per Ember.js. Funziona alla grande e posso ottenere gli articoli e modificarne anche la quantità. Il problema è che è necessario che inserisca alcune chiavi API che potrebbero consentire alle persone di ispezionare il javascript, prendere quelle chiavi e usarle per fare altre richieste REST al back-end del server.

Non ho fatto molte ricerche su quanto sia sicuro il backend di Parse ma sembra apparentemente semplice afferrare quelle chiavi e usarle come ho detto sopra.

Per riferimento, ecco l'adattatore che sto usando che forse ti darà un'idea migliore di come funziona.

link

Spero davvero che qualcuno possa far luce su questo argomento perché sono alla fine della mia corda sembra qui, non riesco proprio a spiegarmi questo.

    
posta Jordan 13.03.2014 - 19:40
fonte

1 risposta

1

In definitiva, non dovresti esporre le chiavi API al client, se queste chiavi API possono essere utilizzate per effettuare transazioni autorizzate contro l'API REST che altrimenti non sarebbe consentito al cliente. Pensaci in questo modo, se avessi bisogno di un nome utente e una password di amministratore per accedere alle API REST, saresti disposto a inserire tale nome utente e password nel codice JavaScript che invii al client? No, perché faresti diventare chiunque chiunque visiti il tuo sito web come amministratore. Le chiavi API che consentono di eseguire funzioni amministrative sono esattamente le stesse.

Quindi, se le chiavi devono essere tenute segrete, tenerle segrete. Hanno bisogno di vivere sul server, e il server deve fare le richieste al sistema di back-end usando le chiavi, e poi il server può girarsi e servire i risultati delle risposte API al client, chiavi sans.

    
risposta data 11.10.2014 - 17:00
fonte

Leggi altre domande sui tag