Cookie的Secure屬性


測試過程

支付頁面:

Secure屬性為false,沒有開啟。

風險分析

Cookie未設置secure屬性,攻擊者可以通過嗅探HTTP形式的數據包獲取到該cookie。

解決方法

將Cookie應設置secure屬性。

 

基於安全的考慮,需要給cookie加上Secure和HttpOnly屬性,HttpOnly比較好理解,設置HttpOnly=true的cookie不能被js獲取到,無法用document.cookie打出cookie的內容。

Secure屬性是說如果一個cookie被設置了Secure=true,那么這個cookie只能用https協議發送給服務器,用http協議是不發送的。換句話說,cookie是在https的情況下創建的,而且他的Secure=true,那么之后你一直用https訪問其他的頁面(比如登錄之后點擊其他子頁面),cookie會被發送到服務器,你無需重新登錄就可以跳轉到其他頁面。但是如果這是你把url改成http協議訪問其他頁面,你就需要重新登錄了,因為這個cookie不能在http協議中發送。

例子是:

前提條件:https://localhost:9102應用對cookie設置了Secure=true

1. 訪問 https://localhost:9102/manager

2. 輸入用戶名、密碼,用IE或者Chrome的developer tool會看到response的header里,set-cookie的值里有Secure屬性

3. 登錄后,繼續訪問https://localhost:9102/manager#user,可以正常看到內容

4. 修改url,訪問http://localhost:9100/manager#domain,會跳轉到登錄頁面,因為cookie在http協議下不發送給服務器,服務器要求用戶重新登錄

 

原因分析:

服務器開啟了Https時,cookie的Secure屬性應設為true;

解決辦法:

1.服務器配置Https SSL方式,參考:https://support.microsoft.com/kb/324069/zh-cn

2.修改web.config,添加: 

<system.web>
  <httpCookies httpOnlyCookies="true" requireSSL="true" />
<system.web> 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM