2012-05-15 10 views
7

Sto scrivendo un plug-in javascript che verrà installato dai blogger/proprietari di siti web. Comunicherà con la mia API remota.Protezione di un'API per l'uso con il widget Javascript

Mi chiedo come proteggere l'API per garantire che solo i domini di proprietà degli utenti che hanno registrato un account con il servizio possano accedere alle risorse dall'API. Ho letto su OAuth2 e capisco le basi, ma poiché il plug-in verrà eseguito dal browser e non da un server all'altro, non sono sicuro di quanto possa essere sicuro.

Tonnellate di servizi come mixpanel, google analytics, olark usano lo stesso concetto (cioè il proprietario del sito Web installa una linea di JS sul loro sito) quindi deve essere un problema risolto.

+0

Che cosa stai cercando di prevenire esattamente? – SLaks

+0

Cercando di impedire alle persone di accedere ai dati a cui non dovrebbero avere accesso, ad es. accedendo ai dati google analytics di un sito che non possiedo o controllo. Google lo fa, ma come? usando OAuth? – cjroebuck

+0

No; Google non lo fa. Lo script di Google Analytics non consente l'accesso a nessun dato. – SLaks

risposta

3

È possibile inserire i controlli window.location nello script per impedire ad altre persone di includerlo direttamente dai propri server.

Tuttavia, è impossibile impedire agli utenti di scaricare localmente gli script, rimuovere la protezione e quindi ospitarli autonomamente.

È possibile richiedere una chiave API in tutte le richieste lato server, ma i nemici possono facilmente rubare chiavi API da siti legittimi.

+0

Lo script sarebbe praticamente inutile senza comunicazione con la mia API. Scusate la mia domanda è un po 'vaga sono solo un po' confuso su come i servizi che ho citato siano andati a implementare questo. – cjroebuck

+0

Nessuno dei servizi menzionati può restituire alcuna informazione. – SLaks

+0

SLaks l'ha colpito sulla testa. I widget GA e Mixpanel inviano solo dati e non c'è nulla che impedisca a qualsiasi sito di utilizzare una determinata chiave GA per registrare dati, tranne per il fatto che non possono accedere ai dati in questione (ed è facilmente filtrato per l'utente legittimo). Nel caso di Olark, i dati tornano (cioè i messaggi dall'operatore), ma sono specifici della sessione e non autentificati dall'utente, quindi vale la stessa cosa (io sono un ingegnere per Olark, e non facciamo nulla sorta di verifica degli URL perché sarebbe in definitiva inutile per le ragioni menzionate da SLaks). –

Problemi correlati