服务器是怎么判断客户端传来的cookie是正确的,服务端的cookie是一直存储在内存中的吗,那cookie对应的是哪一个进程或线程?
2条回答 默认 最新
关注- 你可以看下这个问题的回答https://ask.csdn.net/questions/7707109
- 这篇博客也不错, 你可以看下什么是cookie以及cookie的特性、优缺点
- 除此之外, 这篇博客: cookie机制及cookie的应用中的 操作cookie的工具类 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
public class CookieUtil(){ /** * 根据名字获取cookie的值 默认使用“utf-8”编码 * @param request * @param name cookie名字 * @return */ public static String getCookieValueByName(HttpServletRequest request,String name){ Cookie cookie = getCookieByName(request,name); if(cookie!=null&&StringUtil.isNotBlank(cookie.getValue())){ return URLDecoder.decode(cookie.getValue(),"UTF-8″); }else if(cookie.getValue()!=null){ return ""; }else{ return null; } } /** * 根据名字修改cookie * @param request * @param name cookie名字 * @param value cookie值 * @param expire cookie新的过期时间--为0则表示删除 * @param created cookie不存在是否新建 * @return */ public static Cookie modCookieByName(HttpServletRequest request,String name,String value, Integer expire,boolean created){ Cookie cookie=getCookieByName(); if(null!=cookie){ cookie.setMaxAge(expire); cookie.setValue(URLEncoder.encode(value.trim(),"UTF-8″)); }else(null==cookie){ if(created){ Cookie cookie=createCookie(name,value,expire); } } return cookie; } /** * 新建cookie 默认path为“/”,默认所有值进行UTF-8编码 * @param request * @param name cookie名字 * @param value cookie值 * @param expire cookie过期时间--为0则表示删除 * @return */ public static Cookie createCookie(String name,String value,Integer expire){ Cookie cookie = new Cookie(name.trim(), URLEncoder.encode(value.trim(),”UTF-8″)); cookie.setMaxAge(expire); cookie.setPath("/"); return cookie; } /** * 根据名字获取cookie * @param request * @param name cookie名字 * @return */ public static Cookie getCookieByName(HttpServletRequest request,String name){ Map<String,Cookie> cookieMap = ReadCookieMap(request); if(cookieMap.containsKey(name)){ Cookie cookie = (Cookie)cookieMap.get(name.trim(); return cookie; }else{ return null; } } /** * 将cookie封装到Map里面 * @param request * @return */ private static Map<String,Cookie> ReadCookieMap(HttpServletRequest request){ Map<String,Cookie> cookieMap = new HashMap<String,Cookie>(); Cookie[] cookies = request.getCookies(); if(null!=cookies){ for(Cookie cookie : cookies){ cookieMap.put(cookie.getName(), cookie); } } return cookieMap; } }
- 您还可以看一下 刘海龙老师的渗透测试视频教程课程中的 COOKIE注入小节, 巩固相关知识点
本回答被专家选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报