Sito web di E-Commerce con backend REST: devo proteggere gli URL di backend accessibili dalle pagine pubbliche front-end?

0

Ho un sito di e-commerce con un backend REST e un JS a pagina singola come front-end. Intendo proteggere il mio backend REST con OAuth2.

Non voglio obbligare l'utente ad autenticarsi quando arriva per la prima volta sul sito web, perché come sito di e-commerce, è normale che l'utente naviga per vedere i prodotti, ecc. (forse ho torto. ..). Quindi, su queste pagine "pubbliche", mentre eseguo le chiamate Ajax dal backend, vale la pena proteggere questi URL sul mio back-end? In caso contrario, quali sono i rischi?

In effetti, se proteggi questi URL sul mio back-end, cosa può impedire a qualsiasi utente di accedere a questi URL di back-end protetti eseguendo richieste dal frontend?

Forse sono paranoico, ma penso che dovrei cercare di proteggere questi URL per impedire ad alcuni malintenzionati di usare il mio back-end gratuitamente o qualcos'altro.

Per me non ci sarebbe più alcun problema se obbligassi l'utente ad autenticarsi. Ecco perché chiedo ancora se è davvero la strada da percorrere per l'e-commerce ...

Grazie mille.

    
posta rico 23.09.2013 - 00:24
fonte

2 risposte

1

Sì. Sei responsabile di garantire che solo l'accesso autorizzato sia consentito all'interfaccia REST. Se l'interfaccia deve essere accessibile solo dal front-end, sei responsabile di garantire che questo sia esattamente ciò che accade.

Quali sono i rischi? bene, quale funzionalità offre la tua API REST? Se un cleint non autorizzato può connettersi, leggere dati e inviare comandi, allora possono usare l'API REST per fare ciò che l'API REST può fare. Possono cancellare qualsiasi cosa la tua API gli consenta di eliminare, modificare qualsiasi cosa la tua API possa modificare, leggere tutto ciò che gli permette di leggere e creare nuovi whatevers che la tua API gli consente di creare. E ci sono altri problemi con la tua implementazione API, come il sovraccarico del buffer, quindi anche quelli saranno esposti all'attaccante.

    
risposta data 23.09.2013 - 02:33
fonte
1

Non esiste un modo efficace per proteggere il back-end di REST in modo che solo il front-end di JavaScript possa accedervi. Ciò che invece è necessario è progettare il back-end REST in base alla consapevolezza che un utente malintenzionato può accedervi direttamente.

Ciò implica alcuni controlli tecnici, come la convalida dell'input lato server. Potrebbe anche implicare alcune considerazioni di carattere commerciale. Ad esempio, il back-end REST permetterà a un concorrente di "schermare" il tuo sito in modo molto efficace. La maggior parte dei siti di e-commerce sono soddisfatti di questo rischio, sebbene alcuni implementino misure anti-raschiamento.

Come pensi di usare OAuth2 esattamente? Fai registrare gli utenti quando vanno alla cassa? Presumo che consentirai a chiunque su Internet di registrarsi per un account, quindi anche gli endpoint REST limitati agli utenti registrati devono essere protetti.

    
risposta data 23.10.2013 - 03:58
fonte

Leggi altre domande sui tag