JavaScript recupera in modo sicuro i dati dal server

1

Ho creato un'applicazione Android per la creazione di orari personali. Ho bisogno di due cose per l'interfaccia utente: la lista dei voti e gli elenchi degli studenti dei gradi senior. Per recuperarli, ho creato una web part java da cui posso ottenere la lista. Dal momento che non voglio che tutti ricevano le liste degli studenti dal mio server, ho protetto la connessione (usando un certificato autofirmato). Ora sto costruendo un interfaccia utente per questo, simile a ui su Android.

Il mio problema è: Come posso ottenere in sicurezza gli elenchi degli studenti?

So che non riesco a collegarmi a un normale socket del server in javascript. Scusa se la risposta è ovvia, ma è la prima volta che sviluppo un'applicazione web. Non so come iniziare, non ho trovato nulla su Internet.

    
posta guest 17.10.2015 - 15:54
fonte

1 risposta

1

Collegamento

Come per la connessione da JavaScript, puoi fare richieste HTTP (S) usando normali strumenti client, o XHR in semplice JavaScript o utilizzando oggetti framework come jQuery.ajax () da jQuery o < a href="https://docs.angularjs.org/api/ng/service/%24http"> $ http da Angular. I WebSocket sono disponibili anche dai browser di supporto. Ecco un tutorial su come iniziare.

Sicurezza

Voglio indirizzare 3 livelli di sicurezza separati qui.

Prima c'è la sicurezza a livello di connessione. Questo risponde alla domanda: qualcuno che non sia il cliente e il server può vedere i dati trasmessi. Usando HTTP, qualsiasi dispositivo che può vedere il tuo traffico (altri utenti wifi, router tra client e server) può intercettare i dati e leggerli perché è un testo normale. HTTPS aiuta a risolvere questo problema crittografando i dati in modo che, anche se possono essere intercettati, non possono essere compresi (in pratica). Inoltre, HTTPS non è ancora considerato sicuro se non si ottiene un certificato firmato. Un certificato firmato è essenzialmente garantito da un'autorità fidata.

In secondo luogo, c'è l'autenticazione. Un particolare cliente può accedere alla mia applicazione? Avendo solo HTTPS, qualsiasi client (ad esempio il browser che naviga verso l'URL) può ancora accedere ai dati. È necessario aggiungere un'autenticazione (accesso) alla propria applicazione in modo da poter collegare quel particolare client a un utente valido del sistema. Comune oggi è l'autenticazione basata su token in cui si rilascia un token quando l'utente si autentica con successo. Quindi il token viene inviato con ogni richiesta per identificare l'utente. Per sicurezza, questo richiede HTTPS. In caso contrario, il token può essere letto, copiato e utilizzato da qualsiasi ascoltatore. I termini di ricerca qui sono OAuth , bearer token .

Terzo, c'è Autorizzazione. Avendo solo l'autenticazione, puoi dire che è un utente valido del sistema, ma non puoi ancora dire cosa è in grado di fare quell'utente nel sistema. Se tutti gli utenti sono in grado di eseguire le stesse azioni, l'autenticazione è sufficiente. Tuttavia, se alcuni utenti hanno diverse operazioni disponibili da altri, allora è necessario anche l'Autorizzazione per istruire il server su ciò che l'utente è autorizzato (autorizzato) a fare. Il modo comune per farlo è tramite Ruoli o Reclami. Quando l'utente viene autenticato, spesso l'autorizzazione dell'utente (ruolo o elenco di attestazioni) viene anche caricata in memoria. Le richieste successive con lo stesso token possono cercare le autorizzazioni dell'utente per decidere se possono o meno eseguire l'operazione specificata nel sistema. I termini di ricerca qui sono Role-based o Claims-based authorization .

    
risposta data 20.10.2015 - 18:23
fonte

Leggi altre domande sui tag