2013-08-02 96 views
3

我有一個同時擁有HTTP和HTTPS頁面的網站。ASP.NET在HTTP和HTTPS上保護Cookie

我曾嘗試以下做餅乾安全:

  • 的Web.config <httpCookies requireSSL="true" />與形式的認證。
  • 強制餅乾,以確保在Application_End

在這兩種情況下的網頁不是以HTTP工作。我認爲上述解決方案僅適用於所有頁面使用HTTPS的情況。

如何解決這個難題?

+0

是否有一個原因,你不能讓所有的頁面使用HTTPS? –

回答

7

設置爲'安全'的cookie的全部要點是它只能通過https傳輸; http頁面將不會收到它的副本。從Wikipedia

安全cookie啓用了安全屬性,只能通過HTTPS使用,確保從客戶發送到服務器時,該cookie始終是加密的。這使得cookie不太可能通過竊聽暴露於cookie盜竊。

如果您想使用安全cookie,則需要確保所有頁面都使用https。

+0

我有限制 - 我無法將所有網站移動到https。有沒有辦法解決這個問題或替代方案? – user1029468

+0

不幸的是,您的http提供的頁面在設置爲「安全」時不會獲取cookie。唯一的辦法是安全設置被刪除。 –

+0

您可以在一段時間內使用普通的不安全cookie,對其中的數據進行加密,還可以對其中的某些與原始相關的信息(例如,哪些IP地址請求應該來自哪裏)進行加密。但這仍然很容易被攔截 - 例如如果攻擊者設法進入同一網絡 - 並且原始IP地址可能會改變,從而導致更多問題。更不用說它可能不會通過任何安全審計。 –

3

問題:如何解決這個難題,需要分析的要求,看看是否會更好地使用整個網站的HTTPS或http的組合& https。

既然你也要求在你的上述評論一個替代方案,我希望下面的信息可以幫助您在替代決定。

背景:

基本上你使用http什麼都沒有做與敏感數據的所有頁面和HTTPS上有敏感數據的頁面。 很多時候,我們不願意使用整個網站的https,因爲傳輸的數據更多,加密和解密數據需要時間,因此最多可以加載顯示頁面的實際時間。

但是,有一些反對上述常見觀點的觀點,您也可以鼓勵在整個網站上使用https。選中此項:How to implement HTTPS only on part of website?

而且,是的,安全cookie只能用於https頁面。

一些建議

+0

這與這個問題有什麼關係?真的嗎? –

+2

他無法在http頁面上使用安全cookie。最後他問,如何解決這個難題?因此,最好能幫助他思考並看看究竟是什麼要求,並且他可以解決這個難題,以便他將使用https作爲一個整體或組合,而不是浪費在http頁面上訪問安全cookie。 –

+0

另外在上面的評論之一,用戶提到他不可能在整個網站上使用https。他還提出了替代方案。所以我只是試圖給。 –