Stiamo considerando breeze js per la creazione di applicazioni aziendali.In che modo breeze.js gestisce la sicurezza ed evita di esporre la logica aziendale
L'aspetto fantastico di brezza è che siamo in grado di eseguire query direttamente dal browser client. Ciò consente di costruire query dinamiche basate sull'input dell'utente senza caricare dati non necessari. Ho scoperto che utilizzando Breeze possiamo creare una logica di business che riduce i dati che viaggiano/trasferiscono di 1/10 o anche di più quando si utilizza una strategia di caricamento lenta. utilizzando query come these
Urrina brezza !!!
Ma per quanto riguarda la sicurezza di Business Logic, Ad esempio, potremmo avere un repository in cui possiamo nascondere, nascondere e oscurare la nostra logica aziendale; quindi utilizzare i controller MVC Web API per effettuare solo chiamate a tali classi C# del repository. quindi JavaScript di Breeze comunica con il controller WebAPi e il controller WebApi comunica con il repository C#. I controllori saranno sempre mantenuti molto semplici e facili da leggere, ma il repository potrebbe finire per avere un sacco di logica di business per l'azienda che utilizza l'applicazione. Quindi, se un hacker utilizza, ad esempio, la console degli sviluppatori di Google Chrome per ispezionare il codice JavaScript, vedrà solo cose come GetCustomers(), GetProductsForThisId (54). Non ci sono molte informazioni che possono essere viste (o rubate) lì. Perché il 90% di Business Logic risiede sul repository C# sul server.
In che modo breeze.js lo gestisce?
Se iniziamo a spostare le query e la logica aziendale "dal C# del controller al brezza JavaScript", dobbiamo considerare che il nostro sistema è basato sull'iscrizione. Penso che quante più domande vengono esposte al client in JavaScript, tanto più vulnerabile diventa il nostro software, e più diciamo agli hacker come hackerare il nostro sito Web e possibilmente rubare informazioni.
Immagino che la preoccupazione sia se ci sono domande in cui le righe non sono state pensate per l'utente. Apre una lattina di vermi. Probabilmente più di una preoccupazione quando si collega a un'app esistente. Ma se si progetta il sistema con la brezza in mente penso che le query dovrebbero andare bene –
Questo può essere un importante vincolo di sicurezza ... e uno che devi imporre sul server con piena e certa conoscenza dell'utente. È un lavoro sicuro, non importa come si costruisce la tua API lato server ***. Breeze non ti aiuta molto con questo genere di cose ... ma non le ostacola neanche. – Ward
@Ward, non capisco la tua risposta. Penso che la funzione di query esponga un rischio e non vedo come prevenire il rischio. Supponiamo che il server esponga un punto di accesso alla query per un'entità non limitata correlata a un'entità limitata. Scriverò il client per non includere mai l'entità limitata, ma un client malintenzionato potrebbe richiederlo. Come scrivo il server per impedirlo? Sono assolutamente d'accordo sul fatto che ho bisogno di "imporre i necessari vincoli di sicurezza" e "applicare sul server", ma la domanda è: come faccio? Analizzo la query? Ispezionare ciascuna entità del risultato della query? – steve