Come posso verificare che i miei cookie vengano inviati solo tramite https crittografato e non http?

40

Ho letto un post sul blog mosse GitHub a SSL, ma rimane Fireshepable che afferma che i cookie possono essere inviati in chiaro su http, anche se il sito utilizza solo https. Scrivono che un cookie deve essere contrassegnato con una "bandiera sicura", ma non so come sia quella bandiera.

Come posso verificare che i miei cookie vengano inviati solo tramite https crittografato e non su http non criptato, sul mio sito che utilizza solo https?

    
posta Jonas 12.11.2010 - 00:59
fonte

3 risposte

42

Il flag di sicurezza dei cookie assomiglia a questo:

secure;

Questo è tutto.
Questo dovrebbe apparire alla fine dell'intestazione Http:

Set-Cookie: mycookie=somevalue; path=/securesite/; Expires=12/12/2010; secure; httpOnly;

Ovviamente, per controllarlo, basta collegare qualsiasi proxy o sniffer (io uso l'eccellente Fiddler ) e guardare. ..

Bonus: ho anche inserito l'attributo httpOnly, protegge dall'accesso ai cookie dallo spazio Javascript, ad es. via XSS.

    
risposta data 12.11.2010 - 01:05
fonte
17

Puoi controllare usando uno strumento come Firebug (un'estensione per Firefox: link ). Il cookie verrà visualizzato come "sicuro".

Inoltre, se sei in Firefox, puoi cercare nella finestra "Rimuovi singoli cookie" per essere certi.

Da un punto di vista dello sviluppo, un cookie 'sicuro' è lo stesso di un normale, ma ha un parametro extra. per es.

SessionId=blah; path=/; secure; HttpOnly

Il tuo framework di sviluppo con il supporto sperato aggiungendolo facilmente: facci sapere quale piattaforma stai usando se hai bisogno di aiuto.

Mentre sei lì, ti suggerirei di aggiungere anche il flag HttpOnly se non stai manipolando i cookie in Javascript, ma fornirà ai cookie una protezione aggiuntiva da alcuni attacchi XSS.

    
risposta data 12.11.2010 - 01:08
fonte
2

Potresti anche utilizzare il plugin di google chrome per ottenere un ottimo risultato Client Advance REST

Un output di esempio assomiglia a questo:

Connection: keep-alive
Strict-Transport-Security: max-age=31536000
Content-Type: application/json
Content-Length: 104
X-Content-Type-Options: nosniff
Server: WEBrick/1.3.1 (Ruby/2.0.0/2015-12-16)
Date: Thu, 25 Aug 2016 07:15:57 GMT
Set-Cookie: your.cookie.name=some-hash-uuid-here; domain=your-backend-hostname.com; path=/; expires=Sat, 24 Sep 2016 07:15:57 -0000; HttpOnly; secure
Via: 1.1 vegur

Come vedi alla fine del valore dell'attributo Set-Cookie , vedrai la parola " secure " come commentata più volte nelle risposte precedenti, ma nota anche come esista un attributo chiamato " Strict-Transport-Security " che è importante menzionare.

    
risposta data 25.08.2016 - 09:59
fonte

Leggi altre domande sui tag