A Shout Out To Some Of My Followers

Very often we are caught up in our own little world of writing stories we would like people to read. This can be self-gratification, a need to earn some extra money, the pure enjoyment of it, or…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




SOP e Cookies

La SOP (Same Origin Policy) è un concetto fondamentale nel mondo delle Web Application, è la base di tutti i principi di sicurezza all’interno di un browser.

Se non ci fosse la SOP, ogni utente di un sito Internet, potrebbe accedere alle informazioni degli utenti di un altro sito Internet: in pratica, dobbiamo impedire che un certo sito A, possa accedere alla informazioni di un altro differente sito B.

Molti attacchi, come il Cross Site Scripting (XSS) e il Cross Site Request Forgery (CSRF) si basano sul tentativo di violare la SOP.

Supponiamo che un utente stia consultando la pagina web “A” tramite il proprio browser: gli SCRIPT in esecuzione su questa pagina “A” possono leggere (o scrivere) il contenuto di una pagina “B” se e solo questi hanno la STESSA ORIGINE (SAME ORIGIN).

Come possiamo verificare se due siti internet condividono la stessa origine? Ci basiamo su 3 fattori:

In altre parole, per verificare se uno script può accedere ad una certa risorsa, PROTOCOLLO, HOSTNAME e PORTA devono corrispondere all’origine ovvero essere uguali.

Può farlo perchè PROTOCOLLO (HTTPS), HOSTNAME/DOMINIO (www.esempio.com) e PORTA (890) sono gli stessi.

Lo stesso script, invece, non può leggere risorse da:

Nel primo caso cambia il PROTOCOLLO.
Nel secondo caso cambia l’HOSTNAME/DOMINIO.
Nel terzo caso cambia la PORTA.

E’ utile far presente che la SOP si applica solo ai browser che stanno eseguendo script e quindi lato CLIENT. Non ha alcun effetto relativamente alla parte SERVER.

A questo punto una domanda può nascere spontanea: perchè quindi prendiamo precauzioni solo per la parte CLIENT e non per quella SERVER? La risposta ce la forniranno i COOKIES che vedremo tra poco.

Oltre a questo, a noi non interessa tanto prevenire che una web application possa accedere a risorse di altri siti, ma quanto impedire che una web application, possa accedere ad informazioni personalizzate per utente (concetto di COOKIES) e fortemente sensibili da altri siti web.

I produttori di browser, danno la possibilità di bypassare la SOP sotto determinate circostanze. Facciamo un esempio: l’utilizzo dell’elemento “SRC” dà la possibilità di caricare uno script da un’altra location in Internet:

< script src=”http://www.sitoB.it/scriptA.js” / >

Se io sono il proprietario del sito B allora il problema non sussiste, ma se non lo sono, devo fare attenzione: lo script eseguito dal sito B potrebbe essere malevolo.

Perchè abbiamo bisogno dei cookies? La risposta si riscontra nel fatto che il protocollo HTTP è STATELESS ovvero non mantiene una connnessione.

Se due utenti effettuano una richiesta HTTP verso un web server, quest’ultimo non sarà in grado di stabilire chi dei due ha effettuato la richiesta e quindi NON può mantenere nessuno stato. Per questi motivi è necessario modificare adeguatamente la richiesta HTTP.

Un COOKIE è un file di testo contenente informazioni e parametri. Il cookie viene inviato dal server al browser dell’utente che memorizzerà quest’ultimo nella “memoria” interna del browser.

Il browser invierà poi, per le successive richieste, il cookie al web server così da validare le informazioni ed i parametri contenuti in quest’ultimo.

Schematizzando il concetto abbiamo che:

Un cookie può essere utile nei seguenti contesti:

Oltre al valore stesso del cookie, abbiamo anche altri parametri impostati dal web server:

HTTP-ONLY: utile per mitigare possibili attacchi di tipo XSS (vedremo nei prossimi capitoli). Se impostato il cookie non può essere dedotto da script lato client (Javascript).

SECURE FLAG: se impostato il cookie può essere inviato solo tramite un canale sicuro di comunicazione (SSL,TLS).

DOMAIN: specifica il dominio verso il quale il cookie deve essere inviato.

PATH: se questo campo è impostato, il cookie verrà inviato dove specificato in quest’ultimo.

La prima estensione, per il browser Google Chrome, che vi suggerisco è: HttpWatch che serve per visualizzare ed analizzare il traffico web HTTP e HTTPS.

Ad esempio, utilizziamo l’estensione per visualizzare il traffico web prodotto dal sito Amazon:

Come si osserva, sono presenti tutte le richieste GET effettuate.

La seconda estensione si chiama EditThisCookie ed è un gestore di cookie che permette di aggiungere, eliminare e modificare i cookie.

Vediamo adesso un esempio pratico di installazione dei COOKIE.

Partiamo da una situazione iniziale in cui nessun cookie è presente sul browser.

Per visualizzarlo basta cliccare sul bottone creato dall’estensione EditThisCookie.

Come si osserva, sono stati installati diversi cookie, ognuno con le proprie caratteristiche:

Se, ad esempio, clicchiamo sull’accettazione dei cookie di profilazione:

Questo è quello che accade:

Vengono installati molti altri cookie e quindi ci sarà una raccolta più massiva delle nostre informazioni personali.

Add a comment

Related posts:

Top Shot Full Team Collection Analysis

Just getting started with the Full Team bonus will require some serious initial investment. For all but a handful of teams, the cost of a Full Team set is already well over $1,000. But things really…

Never Decide Anything In The First 2 Miles

Let me take you on a little backstory before I explain the title of this and where it came from and how it inspired me. After my babies were born, I was unable to lose the weight and was very…

To be

One of the most commonly used auxiliary verbs is to be.