JAVA技術
  當前位置:首頁 > 技術支持 > JAVA技術
如何利用(yòng)response.addHeader()方法設置cookie
發布時(shí)間:2017-09-25 浏覽:3287次
  
将cookie設置成HttpOnly是爲了(le)防止XSS攻擊,竊取cookie内容,這(zhè)樣就增加了(le)cookie的(de)安全性,即便是這(zhè)樣,也(yě)不要将重要信息存入cookie。

 如何在Java中設置cookie是HttpOnly呢(ne)?
Servlet 2.5 API 不支持 cookie設置HttpOnly
http://docs.oracle.com/cd/E17802_01/products/products/servlet/2.5/docs/servlet-2_5-mr2/

建議(yì)升級Tomcat7.0,它已經實現了(le)Servlet3.0
http://tomcat.apache.org/tomcat-7.0-doc/servletapi/javax/servlet/http/Cookie.html

但一般不是能随意升級系統的(de)。
 那就介紹另外一種辦法:
 利用(yòng)HttpResponse的(de)addHeader方法,設置Set-Cookie的(de)值
cookie字符串的(de)格式:key=value; Expires=date(或Max-Age=毫秒數); Path=path; Domain=domain; Secure; HttpOnly

//設置cookie
response.addHeader("Set-Cookie", "uid=112; Path=/; HttpOnly");

//設置多(duō)個(gè)cookie
response.addHeader("Set-Cookie", "uid=112; Path=/; HttpOnly");
response.addHeader("Set-Cookie", "timeout=30; Path=/test; HttpOnly");

//設置https的(de)cookie
response.addHeader("Set-Cookie", "uid=112; Path=/; Secure; HttpOnly");

目前主流的(de)WEB服務器,均應有設置cookie的(de)HttpOnly的(de)方法。一般默認HttpOnly沒有開啓,隻需開啓即可(kě)。
下(xià)面以Resin服務器爲例,設置cookie的(de)HttpOnly參數的(de)方法爲:
1、Resin3.1.X服務器,用(yòng)文本編輯器打開resin.conf,找到:
<!--
         - For security, set the HttpOnly flag in cookies. 
        - <cookie-http-only/>
--> 
可(kě)以看出cookie-http-only被引去,打開即可(kě)。
2、Resin4.0.X,用(yòng)文本編輯器打開resin.xml
參照(zhào)如下(xià)格式,添加cookie-http-only到你的(de)虛拟主機配置中即可(kě)(軟件默認配置文檔沒有<cookie-http-only>參數,自行增加即可(kě),具體參考官方文檔):
<resin xmlns="http://caucho.com/ns/resin"> 
<cluster id=""> 
 <host id="www.foo.com">
 <web-app id="" root-directory="/var/resin/foo"> 
 <cookie-http-only>true</cookie-http-only>
 <web-app id="">
 </host> 
...... 
</cluster> 
</resin>

 
 
    
 
 
版權所有 © 2005-2024 安徽問法信息技術有限公司  
地址:安徽省合肥市蜀山區(qū)望江西路69号西湖國際廣場(chǎng) 電話(huà):0551-64935878 郵箱:admin@ajsoft.cn