特別提示:本人博客部分有參考網絡其他博客,但均是本人親手編寫過並驗證通過。如發現博客有錯誤,請及時提出以免誤導其他人,謝謝!歡迎轉載,但記得標明文章出處:
http://www.cnblogs.com/mao2080/
1、問題描述
Cookie由服務端來寫並將httpOnly設置成為“true”,Cookie中設置了"HttpOnly"屬性,那么通過程序(JS腳本、Applet等)將無法讀取到Cookie信息,這樣能有效的防止XSS攻擊。看圖加深理解。
2、代碼片段
1、設置cookie
此處省略賬號密碼校驗邏輯,省略用戶信息存緩存步驟。
1 @RequestMapping("/login") 2 @ResponseBody 3 public void login(HttpServletRequest request, HttpServletResponse response) throws IOException { 4 Cookie cookie = new Cookie("access_token", UUID.randomUUID().toString()); 5 cookie.setHttpOnly(true); 6 cookie.setPath("/"); 7 cookie.setDomain("localhost"); 8 response.addCookie(cookie); 9 response.sendRedirect("http://localhost:8088/index.html"); 10 }
2、獲取cookie
1 /** 2 * 獲取cookie 3 * @param request 4 * @param key 5 * @return 6 */ 7 public static String getCookie(HttpServletRequest request, String key){ 8 if(request == null || StringUtil.isEmpty(key)){ 9 return ""; 10 } 11 Cookie[] cookies = request.getCookies(); 12 for (Cookie cookie : cookies) { 13 if(key.equals(cookie.getName())){ 14 return cookie.getValue(); 15 } 16 } 17 return ""; 18 }