Serve javascript da un'API e l'esecuzione avviene sul client

0

Mi è stata proposta una soluzione in cui la nostra API serve alcuni JavaScript che verranno eseguiti sul client. Il codice renderà alcuni HTML sul client e fornirà alcune funzionalità come chiamare altre API e verificare le informazioni inserite negli elementi resi dinamicamente.

In pratica farebbe tutto ciò che un programmatore farebbe se volesse chiamare questa API, stiamo solo fornendo una versione preconfezionata di tutto ciò. Quindi HTML e JavaScript renderizzati non farebbero nulla che non faremmo sul client in ogni caso.

Da una panoramica iniziale non riesco a vedere nulla di insicuro con questo approccio fintanto che l'API di cui stiamo eseguendo il codice JavaScript è affidabile. ci sono grossi problemi di sicurezza con questo approccio?

Modifica

Non sono un esperto in sicurezza, ma ecco una spiegazione che spero migliori le mie preoccupazioni.

Se un hacker entra nel nostro sistema, l'API è l'ultima cosa di cui siamo preoccupati perché abbiamo un sacco di altre cose più preziose che vorrà. Tuttavia, se questa API che serve JavaScript dinamico rende più facile l'accesso da parte di un hacker, questo diventa un problema.

Inoltre, sono sempre stato scettico sull'esecuzione dinamica del codice, mi è stato insegnato che è intrinsecamente insicuro, ed è per questo che sto facendo questa domanda in primo luogo. Certo, non vedo perché sia insicuro a meno che il codice dinamico non venga generato dall'input dell'utente, quindi la mia altra preoccupazione è che ci sono dei buchi di sicurezza inerenti l'esecuzione di questo JavaScript dinamico purché provenga da una fonte attendibile. / p>

Per fonte attendibile intendo semplicemente, stiamo ospitando la nostra API su www.myapi.com/some/stuff. Quindi, se il client chiama l'endpoint su quell'URL, assumeremo che si tratti di un'API attendibile. Forse è brutto da fare? Non so di non essere un esperto di sicurezza.

Inoltre, pubblicheremo tutto su SSL.

    
posta tt9 10.05.2016 - 19:16
fonte

1 risposta

1

Non è chiaro quali sono i tuoi modelli di minaccia o come hai designato nessuno dei nodi nel sistema come "affidabile". Ecco una breve lista di cose che dovresti aver già considerato:

  • Che cosa accade se l'API primaria è compromessa (ad esempio, l'hacker pubblica codice javascript dannoso dall'API)?
  • Che cosa accade se la connessione tra l'API primaria e il client è compromessa (ad esempio, MITM (stai usando SSL?) inietta codice javascript dannoso)?
  • Che cosa accade quando il computer del client viene compromesso (ad esempio, il client inizia a violare per vedere cosa succede) e invia altri comandi "verificati localmente" alle altre API?
  • Che cosa succede quando la connessione tra il client e le altre API è compromessa (probabilmente non ha effetti diversi rispetto a quando il computer del client è compromesso)? Oppure le altre API stesse sono compromesse?
risposta data 10.05.2016 - 19:29
fonte

Leggi altre domande sui tag