Cookie 缺失secure漏洞修復

0x00 漏洞背景

       Cookie Secure,是設置COOKIE時,可以設置的一個屬性,設置了這個屬性後,只有在https訪問時,瀏覽器纔會發送該COOKIE。

       瀏覽器默認只要使用http請求一個站點,就會發送明文cookie,如果網絡中有監控,可能被截獲。

       如果web應用網站全站是https的,可以設置cookie加上Secure屬性,這樣瀏覽器就只會在https訪問時,發送cookie。

     攻擊者即使竊聽網絡,也無法獲取用戶明文cookie。

0x01 修復思路

設置cookie時,加入屬性httponly,但需要注意幾點問題:

1、在cookie類中沒有找到設置httponly的方法,目前的jdk版本只支持在setHeader時,設置httponly。

2、httponly已經可以防止用戶cookie被竊取,只能增加攻擊者的難度,不能達到完全防禦XSS攻擊。

0x02 代碼修復

在設置認證COOKIE時,加入Secure。參考代碼:

response.setHeader("SET-COOKIE", "user=" + request.getParameter("cookie") + "; HttpOnly ; Secure ");

服務器配置爲HTTPS SSL方式

Servlet 3.0 (Java EE 6)的web.xml 進行如下配置:

<session-config>

<cookie-config>

  <secure>true</secure>

</cookie-config>

</session-config>

ASP.NET的Web.config中進行如下配置:

<httpCookies requireSSL="true" />

php.ini中進行如下配置

session.cookie_secure = True

weblogic中進行如下配置:

<wls:session-descriptor>

     <wls:cookie-secure>true</wls:cookie-secure>

      <wls:cookie-http-only>true</wls:cookie-http-only>

  </wls:session-descriptor>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章