Come prevenire l'uso improprio da parte di terzi di ciò che si intende essere una API privata (evitando ciò che è accaduto a Snapchat)?

5

Non ho mai usato Snapchat e non ho intenzione di farlo ma ho letto su quello che è successo a loro per quanto riguarda la recente copertura mediatica sulle immagini che sono trapelate, soprattutto perché sto anche scrivendo un'API per la mia app in questo momento e io voglio evitare che ciò accada mai da me.

Dopo aver esaminato l'accaduto sembra che Snapchat non abbia effettivamente fatto nulla di male. Sembra che un'applicazione web di terze parti abbia annusato le loro chiamate API - non c'è qualcosa di cui essere sorpresi, chiunque può farlo, ed è per questo che l'API dovrebbe richiedere l'autenticazione, il modo in cui questo può variare, ma probabilmente attraverso una specie di token.

In ogni caso, Snapchat api ha richiesto l'autenticazione, quindi ho pensato che sarebbero stati al sicuro, ma si è scoperto che le app di terze parti hanno consentito agli utenti di inserire volontariamente i loro nomi utente e password nell'app, consentendo così l'accesso e l'autenticazione.

Ricorda che questa era un'app di terze parti, non l'app ufficiale di Snapchat. Non mi sarei mai aspettato che gli utenti facessero qualcosa del genere, è come dare via le chiavi della tua auto a chiunque passi davanti al valletto dell'hotel.

Ora, al punto, sono tecniche per evitare che ciò accada che posso richiedere la mia api? Non sono sicuro di come possa impedirmi di finire nella stessa situazione.

    
posta Skill M2 16.10.2014 - 19:04
fonte

2 risposte

6

È impossibile evitare che questo problema si verifichi completamente. Ci sono due cose che puoi fare che aiutano ma non migrano completamente il problema:

  • Usa SSL solo: Se controlli sia il client e il server che non v'è alcuna ragione per cui non è possibile crittografare il traffico, questo impedisce alle persone di fiutare le chiamate API studiando il traffico - protegge anche user segreti e aiuto per prevenire attacchi man-in-the-middle.

  • Utilizza una chiave API. Questa dovrebbe essere una chiave nascosta che può essere allegata alle transazioni che convalidano che la chiamata API proviene da un'applicazione approvata. Tieni presente che questo è utile solo se il traffico è crittografato, poiché la chiave è inutile se è visibile su testo normale.

Ancora una volta, non è possibile proteggersi completamente poiché la natura del web è piuttosto insicura. Inizialmente non era stato progettato pensando alla sicurezza, quindi dovresti pensare che qualsiasi cosa esposta pubblicamente possa / sarà utilizzata da un'altra parte a un certo punto.

    
risposta data 16.10.2014 - 22:30
fonte
0

Una possibile soluzione (ma con un piccolo compromesso) sarebbe limitare il numero di token validi che un utente specifico può avere in un dato momento. Ciò non impedirà la capacità di un terzo di accedere al sito, tuttavia introdurrebbe un livello di fastidio per un utente che sta usando la tua API in modo inappropriato. Se imposti questo limite su 1, quando l'app di terze parti accede all'account dell'utente, rimuoverebbe l'autorizzazione di eventuali altre sessioni.

    
risposta data 24.10.2014 - 19:48
fonte

Leggi altre domande sui tag