Quando si implementa CORS, dovrei controllare l'intestazione HOST corretta nella mia webapp?

2

Ho un server Web di back-end che serve un'API (su HTTPS) a un client browser frontend su un sottodominio diverso. Usa CORS per consentire questo.

Le specifiche CORS ti invitano a non inviare le intestazioni CORS se l'origine non è presente o non corrisponde al tuo elenco di origini consentite, cosa che faccio io.

Ma la sezione 6.3 aggiunge che:

In addition to checking the Origin header, resource authors are strongly encouraged to also check the Host header. That is, make sure that the host name provided by that header matches the host name of the server on which the resource resides. This will provide protection against DNS rebinding attacks.

Questo è prezioso da aggiungere al nostro server API? La mia comprensione è che il rebinding DNS è un attacco che eseguiresti per accedere a qualcosa su un sistema locale come un router, quindi non sono sicuro che ciò si applichi a noi.

Se dovessimo controllare l'intestazione Host , quale azione dovremmo intraprendere? Semplicemente non restituendo le intestazioni CORS, o rifiutando del tutto la richiesta? La prima opzione ha più senso per me, poiché altrimenti la raccomandazione non apparterrebbe a una specifica CORS, ma il documento non è chiaro.

    
posta MaxGabriel 12.07.2018 - 21:17
fonte

1 risposta

2

My understanding is that DNS rebinding is an attack that you'd perform to access something on a local system like a router ...

Un attacco di rebinding DNS non è limitato a un router o ad altri dispositivi di rete locali. Si tratta di un attacco che viene utilizzato per ignorare la stessa politica di origine e quindi non solo inviare dati a un server come in CSRF, ma anche leggere la risposta.

Mentre il tipico caso d'uso è leggere dati da server che non possono essere raggiunti direttamente dall'esterno (come il wiki interno dell'azienda) potrebbe ad esempio essere utilizzato anche per ottenere dati da sistemi raggiungibili su Internet che utilizzano l'autenticazione basata su IP ( cioè alcuni client hanno diritti speciali basati sull'indirizzo IP della sorgente).

Dato che CORS riguarda la limitazione della lettura / scrittura cross-site, la raccomandazione di controllare l'intestazione Host per proteggersi contro il rebinding DNS ha senso, poiché il DNS rebinding è essenzialmente il tentativo di fare una richiesta cross-site come una richiesta per lo stesso sito.

    
risposta data 12.07.2018 - 21:38
fonte

Leggi altre domande sui tag