Vale la pena verificare la richiesta nome host nelle comunicazioni API-API?

5

Durante l'autenticazione da un'applicazione browser a un livello API, è possibile verificare l'origine della richiesta per le richieste CORS. Sono consapevole che questo è principalmente per prevenire gli attacchi CSRF. Non impedisce a un utente malintenzionato di accedere all'endpoint stesso, ma impedisce all'hacker di dirottare inconsapevolmente il browser di un utente dal colpire l'endpoint inconsapevolmente con una richiesta AJAX, quando l'utente si trova su un dominio sotto il controllo dell'aggressore.

La mia domanda è: c'è qualche vantaggio nella verifica dell'origine della richiesta quando si implementa una comunicazione API-API? Per esempio, supponiamo che due API siano costruite per eseguire transazioni tra loro, utilizzando un segreto condiviso (per semplicità, una chiave API), ma, a seconda delle esigenze di accesso, potrebbe essere applicabile un approccio più avanzato come OAuth). Oltre a verificare la chiave API, il server dovrebbe anche controllare l'host della richiesta per confermare che proviene da un server API affidabile? Oppure l'host di una richiesta è facilmente falsificabile (poiché la richiesta verrebbe da un altro server con il controllo completo delle intestazioni inviate nella richiesta HTTP) e quindi un tale controllo sarebbe inutile?

    
posta M Miller 10.12.2017 - 20:49
fonte

1 risposta

1

La verifica del nome host non fornisce alcuna garanzia aggiuntiva di autenticità. Partendo dal presupposto che, oltre a utilizzare un segreto condiviso, le API sono in grado di verificare le chiavi private l'una dell'altra, quindi si ottiene una strong garanzia che sono quelle che dicono di essere. Chiunque sia in grado di rubare le chiavi private per impersonare completamente uno degli host sarà in grado di alterare banalmente il nome host.

    
risposta data 19.12.2017 - 05:26
fonte

Leggi altre domande sui tag