1. 程式人生 > >會話cookie中缺少HttpOnly屬性漏洞--分析解決

會話cookie中缺少HttpOnly屬性漏洞--分析解決

詳細描述

會話cookie中缺少HttpOnly屬性會導致攻擊者可以通過程式(JS指令碼、Applet等)獲取到使用者的cookie資訊,造成使用者cookie資訊洩露,增加攻擊者的跨站指令碼攻擊威脅。

HttpOnly是微軟對cookie做的擴充套件,該值指定cookie是否可通過客戶端指令碼訪問。Microsoft Internet Explorer 版本 6 Service Pack 1 和更高版本支援cookie屬性HttpOnly。

如果在Cookie中沒有設定HttpOnly屬性為true,可能導致Cookie被竊取。竊取的Cookie可以包含標識站點使用者的敏感資訊,如ASP.NET會話ID或Forms身份驗證票證,攻擊者可以重播竊取的Cookie,以便偽裝成使用者或獲取敏感資訊,進行跨站指令碼攻擊等。

如果在Cookie中設定HttpOnly屬性為true,相容瀏覽器接收到HttpOnly cookie,那麼客戶端通過程式(JS指令碼、Applet等)將無法讀取到Cookie資訊,這將有助於緩解跨站點指令碼威脅。

解決辦法

向所有會話cookie中新增“HttpOnly”屬性

Java示例:

HttpServletResponse response2 = (HttpServletResponse)response;

response2.setHeader( "Set-Cookie", "name=value; HttpOnly");

C#示例:

HttpCookie myCookie = new HttpCookie("myCookie");   

myCookie.HttpOnly = true;  

Response.AppendCookie(myCookie);

VB.NET示例:

Dim myCookie As HttpCookie = new HttpCookie("myCookie")  

myCookie.HttpOnly = True  

Response.AppendCookie(myCookie)



解決方式:使用過濾器為每一個cookie新增HttpOnly

在web.xml中加入攔截器:

<!-- Cookie中設定HttpOnly屬性為true -->
    <filter>
    	<filter-name>CookieFilter</filter-name>
    	<filter-class>com.zfsoft.filter.CookieFilter</filter-class>
    </filter>
    <filter-mapping>
    	<filter-name>CookieFilter</filter-name>
    	<url-pattern>/*</url-pattern>
    </filter-mapping>

CookieFilter.java內容如下:

/**
 * 向所有會話cookie中新增“HttpOnly”屬性
 * @author dyq
 * @date 20180628
 *
 */
public class CookieHttpOnlyFilter implements Filter{

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		HttpServletRequest Hrequest = (HttpServletRequest)request;
	    Cookie[] cookies=Hrequest.getCookies();
	    for(Cookie cookie:cookies){
	    	/**
	    	 * //tomcat7 支援該屬性,tomcat6不支援
	    	 * //cookie.setHttpOnly(true);
	    	 */
	    	//tomcat6
	    	  String value = cookie.getValue();  
              StringBuilder builder = new StringBuilder();  
              builder.append("JSESSIONID=" + value + "; ");  
              builder.append("Secure; ");  
              builder.append("HttpOnly; ");  
              Calendar cal = Calendar.getInstance();  
              cal.add(Calendar.HOUR, 1);  
              Date date = cal.getTime();  
              Locale locale = Locale.CHINA;  
              SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss",locale); 
              builder.append("Expires=" + sdf.format(date));  
              resp.setHeader("Set-Cookie", builder.toString()); 
	    	
	    }
	    chain.doFilter(new StrutsRequestWrapper((HttpServletRequest) request), response); 
	}

	@Override
	public void destroy() {
		// TODO Auto-generated method stub
		
	}

}

相關推薦

會話cookie缺少HttpOnly屬性漏洞--分析解決

詳細描述會話cookie中缺少HttpOnly屬性會導致攻擊者可以通過程式(JS指令碼、Applet等)獲取到使用者的cookie資訊,造成使用者cookie資訊洩露,增加攻擊者的跨站指令碼攻擊威脅。HttpOnly是微軟對cookie做的擴充套件,該值指定cookie是否可

Web專案:會話Cookie缺少HttpOnly屬性和secure屬性

當會話Cookie中不含有HttpOnly屬性和secure屬性時,注入站點的惡意指令碼可能訪問此Cookie,並竊取它的值。任何儲存在會話令牌中的資訊都可能被竊取,並在稍後用於身份盜竊或使用者偽裝。 基本上,cookie 的唯一必需屬性是“name”欄位,必

會話cookie缺少secure屬性

What is it and why do I care ? Session cookies (或者包含JSSESSIONID的cookie)是指用來管理web應用的session會話的cookies.這些cookie中儲存特定使用者的session ID標識,而且相同

IBM AppScan 安全掃描:加密會話(SSL)Cookie 缺少 Secure 屬性處理辦法

原因分析: 伺服器開啟了Https時,cookie的Secure屬性應設為true; 解決辦法: 1.伺服器配置Https SSL方式,參考:https://support.microsoft.com/kb/324069/zh-cn 2.修改web.config,新增: <

加密會話(SSL)Cookie 缺少 Secure 屬性

appscan掃出來的漏洞,應用伺服器是was8.5 ,web伺服器是apache http server,配置了ssl加密傳輸,這個問題說的是在ssl傳輸中,系統所用的cookie沒有進行設定secure屬性。 首先cookie分為兩種,一種是使用者瀏覽器請求應用伺

Cookie 缺少 HttpOnly屬性和x-frame-options 缺失問題

過濾器dofileter 方法中 新增 HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; res.addHead

Cookiehttponly屬性和作用

response.setHeader("Set-Cookie", "cookiename=httponlyTest;Path=/;Domain=domainvalue;Max-Age=seconds;HTTPOnly"); 

Tomcat為Cookie設置HttpOnly屬性

Tomcat HttpOnly A:Tomcat 中維持Java webapp的Http會話是以Cookie形式實現的存儲在服務端用戶狀態信息的;B:服務端可以自定義建立Cookie對象及屬性傳遞到客戶端;服務端建立的Cookie如果沒有設置HttpOnly屬性,則在客戶端可以用js讀取Cookie中

ThinkPHP 3.1的SQL注入漏洞分析----論ThinkPHP 3.1的半吊子的PDO封裝

我總結ThinkPHP的PDO封裝可以用買櫝還珠來下結論,表面上封裝了PDO支援,但實際卻並沒有使用到PDO的精髓部分,這不是買櫝還珠是什麼呢? 花了一些時間瞭解到ThinkPHP 3.1框架,其官方網站上對其描述得相當不錯,但隨著我閱讀其程式碼,事實並不是想象的那

淺談HTTP Cookie 的 Secure 和 HTTPONLY屬性

cape name col cap http 版本 span http協議 ring   最近工作中遇到了關於cookie的secure及httponly屬性的問題,所以關註並學習了一段時間,這裏做一下簡要記錄。關於secure和httponly標誌的用途可以參考wikip

fiddler會話列表會話屬性及其圖示的含義

一、會話屬性 #:為了方便查詢和定位而生成的請求id,從1開始。 Result:http響應的結果編碼。 Protocol:會話使用的協議,例如http、https、ftp。 Host:請求傳送到的伺服器主機名。 URL:在伺服器中的路徑和檔案。 Body:響應body的位元組數,

智慧合約的“座霸” | 成都鏈安漏洞分析連載第七期 ——儲存器區域性變數未初始化

針對區塊鏈安全問題,成都鏈安科技團隊每一週都將出智慧合約安全漏洞解析連載,希望能幫助程式設計師寫出更加安全牢固的合約,防患於未然。 行身踐規矩,甘辱恥媚灶。——韓愈 前情提要 上回講到, 區塊鏈遊戲江山如畫, 安全防護未規劃, 一片殘陽西掛。 我

java過濾器給Cookie加上HttpOnly屬性

網上擼下來的程式碼登入不了… 公司安全掃描出的漏洞之一,看到的第一步就是各種百度,但是簡單複製貼上過來的程式碼連登入都登入不上了… 尷尬;然後發現貌似cookie的Name和value沒有對應上,需要改一點點… 而且原始碼的doFilter(request,

PHP設定CookieHTTPONLY屬性

httponly是微軟對cookie做的擴充套件。這個主要是解決使用者的cookie可能被盜用的問題。    大家都知道,當我們去郵箱或者論壇登陸後,伺服器會寫一些cookie到我們的瀏覽器,當下次再訪問其他頁面時,由於瀏覽器回自動傳遞cookie,這樣就實現了一次登陸就可以看到所有需要登陸後才能看到的內容。

JSON型別資料轉換為物件,並排除指定的屬性.JAVA將購物車資料寫入到cookie

public void addCart(HttpServletRequest request, HttpServletResponse response, Long skuId, Integer quantity) { //獲取所有co

Linuxcreate_elf_tables函式整型溢位漏洞分析(CVE-2018-14634)

在這篇文章中,我們將跟大家分析Linux平臺中create_elf_tables函式的一個整型溢位漏洞(CVE-2018-14634)。 概述 在近期的一次安全分析過程中,我們在64位Linux系統核心裡的create_elf_tables()函式中發現了一個整型溢位漏洞,本地攻擊者將

Tomcat為Cookie設定HttpOnly屬性

A:Tomcat 中維持Java webapp的Http會話是以Cookie形式實現的儲存在服務端使用者狀態資訊的; B:服務端可以自定義建立Cookie物件及屬性傳遞到客戶端; 服務端建立的Cookie如果沒有設定HttpOnly屬性,則在客戶端可以用js讀取Cookie

關於CookieHttpOnly屬性(java/web操作cookie+Tomcat操作jsessionid)

public class CookieFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOExcept

cookie httponly屬性

http://blog.csdn.net/u014538198/article/details/41596735 arks the cookie as accessible only through the HTTP protocol. This means that

有關cookiehttponly屬性相關

先記錄下相關網上的連結,有時間自己再總結一份自己的理解 對於很多隻依賴於cookie驗證的網站來說,HttpOnly cookies是一個很好的解決方案,在支援HttpOnly cookies的瀏覽器中(IE6以上,FF3.0以上),javascr