极速11选5
   
 
JAVA技術
  當前位置:首頁 > 技術支持 > JAVA技術
如何利用response.addHeader()方法設置cookie
發布時間:2017-09-25 瀏覽:1563次
  
將cookie設置成HttpOnly是為了防止XSS攻擊,竊取cookie內容,這樣就增加了cookie的安全性,即便是這樣,也不要將重要信息存入cookie。

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

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

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

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

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

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

目前主流的WEB服務器,均應有設置cookie的HttpOnly的方法。一般默認HttpOnly沒有開啟,只需開啟即可。
下面以Resin服務器為例,設置cookie的HttpOnly參數的方法為:
1、Resin3.1.X服務器,用文本編輯器打開resin.conf,找到:
<!--
         - For security, set the HttpOnly flag in cookies. 
        - <cookie-http-only/>
--> 
可以看出cookie-http-only被引去,打開即可。
2、Resin4.0.X,用文本編輯器打開resin.xml
參照如下格式,添加cookie-http-only到你的虛擬主機配置中即可(軟件默認配置文檔沒有<cookie-http-only>參數,自行增加即可,具體參考官方文檔):
<resin xmlns="//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>

 
 
  极速11选5  
 
 
版權所有 © 2005-2019 安徽省艾佳信息技術有限公司 皖ICP備06002923號 皖B2-20060015
地址:安徽省合肥市高新區天元路1號留學人員創業園1號樓205 電話:0551-64935878 郵箱:[email protected]