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.