CORS NGINX

CORS NGINX

“La condivisione delle risorse cross-origine è nota con l'acronimo Cors. Quando qualcuno opera su un dominio diverso, il server utilizzerà questo metodo per controllare l'accesso ai suoi servizi. Succede nel mezzo di un server e un browser. Con l'aiuto delle intestazioni HTTP Access-Control-Request-*, il browser trasmette alcuni dati. Sulla base delle intestazioni ricevute, il server decide cosa inviare come Access-Control-Gallote-* Intestazioni. Il browser è ora consapevole della sua capacità o incapacità di accedere alle risorse del server. Il browser può occasionalmente eseguire un pre-volo, che è una convalida, prima di effettuare la richiesta effettiva. Le intestazioni non possono essere modificate dal codice front-end nel browser. Le intestazioni possono essere modificate dal codice lato server. Tuttavia, deve essere eseguito da un servizio a valle che l'applicazione non può vedere, come un gateway API o il server HTTP.

Le query HTTP incrociate effettuate dagli script sono limitate dai browser per problemi di sicurezza. Il principio della stessa origine, ad esempio, è rispettato sia all'API di recupero che a XMLHTTPREQUEST. Ciò implica che un'applicazione Web che utilizza tali API può solo effettuare richieste di risorse dall'origine da cui è stata caricata a meno che la risposta da altre fonti non abbia le intestazioni CORS appropriate."

Trigger e tipi di richiesta Tigger A Cors

Poiché le risorse sono spesso ospitate nella stessa fonte dell'applicazione Web, non tutte le richieste comportano una richiesta CORS. Cors è attivato se è diverso. Richieste semplici e richieste pref-illuminate sono due diverse forme di richieste CORS.

Semplice richiesta cors

Quando un utente avvia una semplice richiesta, il loro browser Web trasmette la richiesta al server. Il server esamina quindi l'origine della richiesta, la analizza alle sue regole e fornisce la risorsa richiesta se corrisponde. Questo tipo di richiesta impiega le intestazioni di origine e accesso-controllo-origine per decidere se la risorsa dovrebbe essere fornita. Gli unici tipi di richiesta che si tradurranno in una semplice richiesta sono GET, Head e Post, nonché le intestazioni come accettazione, DPR, downlink, salvati, dati di contenuto, linguaggio di contenuto, larghezza di visualizzazione e larghezza di visualizzazione Larghezza. Anche ancora, non tutti i tipi di contenuto derivano in una richiesta semplice. Qui, solo alcune forme di codifica del modulo causano una richiesta semplice.

Cors preflight

Le richieste preflight sono in qualche modo diverse perché non esiste una connessione istantanea ai servizi nel round iniziale. Una richiesta prefigurata viene avviata quando le condizioni vengono modificate in qualche modo, ad esempio, utilizzando un'intestazione di richiesta modificata o un tipo di contenuto alternativo. Nelle richieste prefigce, il motore di ricerca conferma in primo luogo che può accedere alla risorsa corrispondente al browser Web e quando il browser Web risponde con una risposta Okay (HTTP 200), quindi invia un'altra richiesta per acquisire la risorsa. Innanzitutto, effettua una richiesta utilizzando il metodo delle opzioni HTTP, quindi scarica risorse utilizzando tipi di richiesta simili ai metodi GET e POST.

Prerequisito di cors in nginx

In primo luogo, le risposte 4xx sono incompatibili con la direttiva Aggiungi intestazione standard di Nginx. La direttiva più set di testate, che funziona anche con le risposte 4xx, può essere utilizzata per aggiungere intestazioni personalizzate, ma per farlo, dobbiamo prima installare il modulo NINGX Teste.

Il pacchetto Nginx-Extras può essere facilmente installato se si utilizza una distribuzione Debian, nonostante la raccomandazione della documentazione di creare NGINX dalla sorgente utilizzando il modulo:

Importanza di abilitare le cors su Nginx

JavaScript eseguendo sul browser del cliente in genere non ha bisogno di accedere ai servizi al di fuori del suo dominio. Di conseguenza, lo spegnimento delle cors può essere una saggia precauzione della sicurezza.

Tuttavia, affinché tale funzionalità funzioni sul backend, i COR devono essere abilitati. Questo perché il codice JavaScript legittimo potrebbe occasionalmente dover passare una richiesta a un server oltre il suo dominio. Un protocollo, un nome di dominio o una porta separati potrebbe essere definito lo stesso dominio.

Come abilitare le cors su nginx in ubuntu 20.04

Andiamo alla parte principale. Apri l'editor preferito, VIM, quindi vai alla configurazione Nginx:

Immettere la voce successiva nel blocco server della configurazione Nginx.

Riavvia Nginx dopo quello, quindi salva il file di configurazione.

CORS può essere abilitato utilizzando il comando Curl per verificare. Il seguente output dovrebbe derivare da questo:

Come gestire gli errori CORS in un grave

Il lato server è dove è implementato CORS; Il lato client non può cambiare il modo in cui funziona. Agli utenti può essere impedito di utilizzare le risorse condivise utilizzando il comportamento CORS, spesso noto come errore CORS. Questo non è un errore ma piuttosto un meccanismo di sicurezza per proteggere te o il sito Web che stai visitando da una potenziale violazione della sicurezza. L'implementazione sul lato client delle intestazioni HTTP inadeguate o errate può comportare questo problema (e.G., Chiavi API mancanti e altre informazioni di autorizzazione). Abbiamo alcune soluzioni uniche a questi errori.

  • Le richieste incrociate di origine possono essere fatte con l'aiuto di un proxy CORS. La tua richiesta viene inoltrata attraverso il livello proxy, che è cieco alla sua origine. Di conseguenza, anche se la richiesta proviene da un'origine non identificata, il proxy CORS lo rende come se provenga da una posizione consentita.
  • L'uso di una funzione senza server è un rimedio più popolare. È un approccio diverso per il proxizione delle tue richieste, ma nonostante l'approccio sopra descritto, è possibile creare la tua micro-infrastruttura per accedere a un servizio Web e trasmettere dati a un endpoint API.

Conclusione

L'obiettivo principale di CORS è rendere le applicazioni online più sicure per ostacolare. Anche i cors possono essere vantaggiosi. Dal momento che non è abilitato per impostazione predefinita, i COR devono essere abilitati in quella situazione. Con l'uso delle direttive di origine e accesso-controllo-origine, che sono i tipi di richiesta unica utilizzati dal tipo di richiesta CORS di base, NGINX può fornire l'autorizzazione del browser Web per accedere alla risorsa richiesta in base all'origine. CORS è un ottimo strumento che dovrebbe essere utilizzato attentamente in entrambi i casi.