Qual è l'alternativa al separare front-end e API? [chiuso]

-4

In ogni sito Web che ho mai realizzato di solito realizzo l'API back-end utilizzando NodeJS ed eseguo su una determinata porta e faccio il front-end usando React ed eseguo su una porta diversa e faccio richieste alla mia API NodeJS. È questo l'approccio ottimale per creare un'app web in cui non voglio che nessuno tranne il mio front end acceda alla mia API? Se questo è il caso, quale sarebbe il modo migliore per proteggere la mia API dall'essere utilizzata da chiunque tranne il mio front end?

    
posta JVerdasca 15.12.2017 - 04:47
fonte

2 risposte

4

Suppongo che il tuo codice React di front-end verrà eseguito sui browser, su computer che non controlli e che sono gestiti da membri del pubblico.

In questo caso dovresti probabilmente rinunciare a tentare di limitare il codice che può accedere alla tua API. Pensa alle persone che stanno accedendo alla tua API e applica loro i sistemi di autenticazione e autorizzazione, se necessario, ma non tentare di autenticare il codice di front-end.

Il tuo front-end code è solo uno strumento che fornisci a queste persone in modo che possano utilizzare la tua API senza eseguire la propria programmazione. Se non gli piace, c'è ben poco che puoi fare per impedirne la reverse engineering e l'utilizzo di strumenti alternativi per interagire con il tuo codice server side.

D'altra parte è possibile che tu stia eseguendo React solo dal lato server. In tal caso, puoi limitare altre applicazioni dalla connessione al back-end mettendo insieme entrambe le parti dietro un firewall di rete o all'interno di una rete privata a cui altre persone non possono accedere.

    
risposta data 16.12.2017 - 00:30
fonte
0

Ho creato molti server Web che alimentano sia le API RESTful che le richieste HTML sullo stesso server. Non è altro che un problema di richieste di instradamento al gestore corretto. Il fatto che un server web gestisca entrambi è solo una questione di preferenza.

Sei un'abitudine degli strumenti che usi.

Angular può facilmente creare e distribuire un front-end con solo ng serve sulla riga di comando, e un back-end NodeJS RESTful è facile come npm start .

Ecco come hai imparato a farlo, e non c'è niente di sbagliato in questo.

    
risposta data 18.12.2017 - 17:21
fonte

Leggi altre domande sui tag