Creazione di un repository API privato o pubblico

1

Quindi sto attualmente lavorando all'API di un'applicazione che servirà molti utenti. Attualmente le uniche informazioni "sensibili" che vengono memorizzate utilizzando l'API sono e-mail e nomi utente. L'applicazione consente agli utenti di formare squadre (che possono essere private). L'API serve richieste provenienti da Slack e anche da un sito Web del cliente. I metadati relativi alle comunicazioni degli utenti su slack sono anche raccolti dall'API.

Supponendo che nessun codice sia esposto nella base di codici, sarebbe ok mantenere il repository pubblico?

Gli argomenti principali per renderlo pubblico sono:

  1. Mantieni il progetto open source.
  2. Può essere una risorsa di apprendimento GraphQL utile.
  3. Accesso agli strumenti del flusso di lavoro gratuiti solo per progetti open source.
  4. Ottieni assistenza della comunità per trovare e applicare patch agli exploit.

Gli argomenti principali per renderlo pubblico sono:

  1. Se c'è qualcosa che ci è mancato o dimenticato di proteggerlo, potrebbe essere sfruttato.
  2. Le persone potrebbero capire come funziona internamente e magari provare a fare confusione con cose che non sono ancora completamente convalidate.
  3. Se siamo sempre negligenti e commettiamo accidentalmente qualcosa di sub-par che potrebbe creare problemi.

Qual è l'approccio migliore qui? Grazie per l'aiuto.

    
posta TheSabby 11.02.2018 - 14:35
fonte

1 risposta

0

Penso che tu stia bene rendendolo un repo pubblico finchè sono soddisfatte le seguenti condizioni:

  1. Nel repository non vengono mantenuti segreti applicativi come chiavi o certificati.
  2. Nessuna informazione sensibile o di identificazione personale, come nomi utente, indirizzi e-mail, password, ecc. vengono mantenute nel repository.
  3. Nessun algoritmo che, se decodificato, potrebbe portare all'esposizione o all'esfiltrazione di uno dei precedenti nel sistema runtime. Ad esempio, decodificare una routine di crittografia o un protocollo che potrebbe esporre un nome utente e una password.

Supponendo che vengano soddisfatti un fattore importante da non trascurare è garantire che l'app sia progettata per proteggersi dall'intrusione. Ciò includerebbe l'autenticazione dell'utente, assicurando che il front-end comunicasse solo al back-end attraverso l'API (cioè nessun utilizzo diretto dei servizi di backend come effettuare una chiamata db dal frontend), usando protocolli sicuri (come HTTPS) per proteggere il canale di comunicazione e assicurando che il sistema operativo e tutti gli altri servizi utilizzati siano regolarmente aggiornati sulle patch di sicurezza.

    
risposta data 11.02.2018 - 14:50
fonte

Leggi altre domande sui tag