2016-07-13 65 views
5

Sono nella situazione in cui il sito su cui sto lavorando, il gestore vuole consentire all'utente di accedere e non preoccuparsi se hanno effettuato il login tramite http o https. Basato su un'altra domanda SO (how can I share an asp.net session between http and https), ho pensato che sarebbe stato possibile se avessi impostato secure = false sul cookie. Per aggiungere a questo, usiamo un sottodominio per la parte protetta del sito. Quindi per http utilizziamo site.com, mentre https utilizza secure.site.com. Così ho provato a impostare il dominio per l'autenticazione nel web.config.Autenticazione condivisione sicura e non protetta

<authentication mode="Forms"> 
    <forms loginUrl="/account/login" 
    protection="All" timeout="30" name=".ASPXAUTH" path="/" 
    requireSSL="false" slidingExpiration="true" defaultUrl="/" 
    cookieless="UseDeviceProfile" domain="site.com" 
    enableCrossAppRedirects="false" /> 
</authentication> 

Sto facendo tutto questo male? Capisco che ci sono alcuni problemi di sicurezza e stavo andando ad affrontarli quando viene fatta una richiesta. Voglio solo consentire all'utente di accedere una volta e di essere ricordato attraverso http e https. Grazie.

+3

Proprio reindirizzare tutto per https, problema risolto. – mxmissile

+0

mi sentivo allo stesso modo, ma il direttore non vuole in questo modo. – Wade73

+1

Suona come una situazione di [ dire di no] (https://sites.google.com/site/unclebobconsultingllc/blogs-by-robert-martin/saying-no). Il nostro settore ritiene che condividere il traffico tra canali sicuri e non sicuri sia una cosa negativa e quindi cerca di rendere impossibile, o almeno difficile, il tuo io dice nstinct, "usa solo un canale sicuro per tutto poi". Sarebbe poco professionale da parte tua passare il tuo tempo prezioso a costruire un lavoro attorno alle migliori pratiche. – Will

risposta

2

Penso che tu abbia un dominio sbagliato nel tuo web.config. Si dovrebbe cambiare per

domain=".site.com" 

Quindi stai permettendo al tuo cookie di forme di autenticazione a vivere sia sul ssl.site.com e no-ssl.site.com del dominio, per esempio.

Tutto ciò che viene detto qualsiasi tipo di sicurezza inizia con https: // su tutta la tua soluzione - altrimenti sei aperto ad attacchi man-in-the-middle (il web proxy può inserire contenuti inappropriati nella tua soluzione, possono rubare il cookie di autorizzazione & usarlo nel flusso su https://ssl.site.com ecc

+0

Ho usato entrambi. Site.com e site.com, poiché entrambi mostrano in esempi che ho visto, ma senza fortuna. Non sembra riconoscere il cookie auth quando imposto il dominio sul cookie. – Wade73