Secure屬性背景
Cookie Secure,是設(shè)置COOKIE時,可以設(shè)置的一個屬性,設(shè)置了這個屬性后,只有在https訪問時,瀏覽器才會發(fā)送該COOKIE。
瀏覽器默認(rèn)只要使用http請求一個站點(diǎn),就會發(fā)送明文cookie,如果網(wǎng)絡(luò)中有監(jiān)控,可能被截獲。
如果web應(yīng)用網(wǎng)站全站是https的,可以設(shè)置cookie加上Secure屬性,這樣瀏覽器就只會在https訪問時,發(fā)送cookie。
攻擊者即使竊聽網(wǎng)絡(luò),也無法獲取用戶明文cookie。
修復(fù)思路
設(shè)置cookie時,加入屬性httponly,但需要注意幾點(diǎn)問題:
1、在cookie類中沒有找到設(shè)置httponly的方法,目前的jdk版本只支持在setHeader時,設(shè)置httponly。
2、httponly已經(jīng)可以防止用戶cookie被竊取,只能增加攻擊者的難度,不能達(dá)到完全防御XSS攻擊。
代碼修復(fù)
在設(shè)置認(rèn)證COOKIE時,加入Secure。參考代碼:
response.setHeader("SET-COOKIE", "user=" + request.getParameter("cookie") + "; HttpOnly ; Secure ");
服務(wù)器配置為HTTPS SSL方式
Servlet 3.0 (Java EE 6)的web.xml 進(jìn)行如下配置:
<session-config> <cookie-config> <secure>true</secure> </cookie-config> </session-config>
ASP.NET的Web.config中進(jìn)行如下配置:
<httpCookies requireSSL="true" />
php.ini中進(jìn)行如下配置
session.cookie_secure = True
weblogic中進(jìn)行如下配置:
<wls:session-descriptor> <wls:cookie-secure>true</wls:cookie-secure> <wls:cookie-http-only>true</wls:cookie-http-only> </wls:session-descriptor>
掃描二維碼手機(jī)查看該文章
文章引用:http://www.qingbaosc.com/news/webzhishi/1311.html




