Strategia per proteggere dati a pagamento come API di servizio

1

Quando si crea un webservice / api che deve essere utilizzato dai client javascript / flash / mobile, si tratta di un buon metodo per assicurarsi che le credenziali di un cliente pagante non vengano rubate e riutilizzate.

Per chiarire ulteriormente, diciamo che voglio addebitare $ 1 per ogni 10.000 richieste contro la mia API. Se qualcuno vuole coltivare i miei dati gratuitamente, dovrebbe solo trovare un'altra app client che già utilizza la mia API e costruire richieste utilizzando le credenziali del cliente pagante.

Non vedo alcun modo per "nascondere" ciò che sta accadendo al cliente, qualcuno sarà sempre in grado di decodificare facilmente lo schema "auth". Quindi quali sono i modi migliori per mitigare gli abusi?

Modifica

Esempio più dettagliato dello scenario ...

Diciamo che il mio servizio dati è il programma di autobus. Lo scopo dei servizi è che gli sviluppatori scrivano app che consumano i dati. Non c'è nulla di personale nei dati, è uguale per tutti. L'intenzione è che lo sviluppatore scriva le app javascript / flash / mobile direttamente contro l'api (sono a conoscenza delle restrizioni del dominio incrociato). Ma lo sviluppatore deve pagare quando gli utenti della sua app fanno richieste contro l'API del programma di bus. Come posso mantenere un altro sviluppatore andando sul sito dello sviluppatore originale e semplicemente sollevando le credenziali utilizzate dal suo browser per parlare con l'API del programma di bus e scrivere la sua app usando quelle credenziali?

    
posta jayrdub 20.07.2011 - 17:16
fonte

1 risposta

2

Prima di tutto, solo perché qualcuno ha il codice non significa che possono bypassare la tua autenticazione semplicemente invertendo il tuo codice. Se hai una crittografia privata / pubblica, avere il codice non aiuta molto un aggressore.

Sulla domanda attuale: la cosa comune da fare sembra essere la distribuzione delle chiavi API, ognuna delle quali identifica un cliente pagante. Tutte le richieste effettuate tramite la chiave API di un cliente vengono addebitate sul proprio account; in questo modo, tieni la responsabilità di mantenere la chiave API segreta ed evitare l'abuso sul client.

Ovviamente, per evitare attacchi di intercettazione e attacchi man-in-the-middle, dovresti servire le richieste API su HTTPS.

    
risposta data 20.07.2011 - 17:26
fonte

Leggi altre domande sui tag