防止服务端产生的cookie被客户端的cookie替换掉
来源:互联网 发布:手机最新wpa2破解软件 编辑:程序博客网 时间:2024/05/22 14:23
今天碰到一个问题
服务端产生的cookie被客户端的cookie替换掉了
解决办法:
把Cookie的HttpOnly这个属性设置为true
下面是两种添加Cookie的方法
Cookie类
/** * 根据部署路径,将cookie保存在根目录。 * * @param request * @param response * @param name cookie名 * @param valuecookie值 * @param expiry //最大生存时间(秒,0代表删除,-1代表与浏览器会话一致) * @param domain 域 * @param path 路径 * @param secure 是否为安全协议信息 * @param isHttpOnly 是否为HttpOnly(如果未设置,可以被客户端的cookie替换) * @param comment 注释 * @return */public static Cookie addCookie(HttpServletRequest request, HttpServletResponse response, String name, String value, Integer expiry, String domain, String path, Boolean secure, Boolean isHttpOnly, String comment) {Cookie cookie = new Cookie(name, value);if (expiry != null) {cookie.setMaxAge(expiry);}if (StringUtils.isNotBlank(domain)) {cookie.setDomain(domain);}if(secure != null){cookie.setSecure(secure);}if(isHttpOnly != null){cookie.setHttpOnly(isHttpOnly);}if(StringUtils.isNotEmpty(comment)){cookie.setComment(comment);}cookie.setPath(path);response.addCookie(cookie);return cookie;}
response.addHeader()
/** * 具有SameSite属性 * @param request * @param response * @param name * @param value * @param expiry * @param domain * @param path * @param secure * @param isHttpOnly * @param sameSite * @param comment */public static void addCookie(HttpServletRequest request, HttpServletResponse response, String name, String value, Integer expiry, String domain, String path, Boolean secure, Boolean isHttpOnly, String sameSite, String comment) {StringBuilder buffer = new StringBuilder(); buffer.append(name).append("=").append(value).append(";"); if(expiry != null){ /* * Fri Oct 21 08:36:45 UTC 2016 * Cookie expires 时间格式 */ String expires = DateUtils.formatToString(DateFormat.EEE__MMM__dd__HH_mm_ss__z__yyyy, DateUtils.dateAdd(new Date(), expiry, Calendar.SECOND), Locale.US, TimeZone.getTimeZone("UTC")); buffer.append("Expires=").append(expires).append(";"); /* * IE中不支持这个属性 * buffer.append("Max-Age=").append(expiry).append(";"); */ } if (domain != null) { buffer.append("domain=").append(domain).append(";"); } if (path != null) { buffer.append("path=").append(path).append(";"); } if (secure != null && secure) { buffer.append("secure;"); } if (isHttpOnly != null && isHttpOnly) { buffer.append("HttpOnly;"); } if(StringUtils.isNotEmpty(sameSite)){ buffer.append("SameSite=").append(sameSite).append(";"); } response.addHeader("Set-Cookie", buffer.toString());}
0 0
- 防止服务端产生的cookie被客户端的cookie替换掉
- 服务端写入cookie客户端取不到的解决办法
- 获取客户端的cookie
- cookie的删除与替换
- 服务端读取jquery创建的Cookie
- webview收不到服务端的cookie
- Cookie注入是怎样产生的
- Cookie注入是怎样产生的
- Cookie注入是怎样产生的
- Cookie注入是怎样产生的
- Cookie注入是怎样产生的
- Cookie 与session的产生过程
- Cookie 与session的产生过程
- 替换.DATA的COOKIE突破GS
- 服务端PHP设置cookie,客户端未生效
- 客户端的全局变量Cookie,JS设置、读取、删除cookie操作
- 【整理】客户端的cookie的位置
- 模拟发布 - 客户端Cookie 的研究
- 通过百度地图定位城市
- java equal 与 hashcode
- C# List<> 容器用法截图
- SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析
- df与du的区别
- 防止服务端产生的cookie被客户端的cookie替换掉
- 今天台风又来袭, 没上班, 在家写了十多篇CSDN博文,累了, 睡!
- 文件锁以及多路复用方式解决多个用户对一个文件的操作
- 安卓高级5 zXing
- 多个进程访问同一文件的解决方法
- JavaWeb开发中如何屏蔽浏览器自动输入密码
- c++(vector)问题
- Codeforces 732D-Exams
- Json解析网络请求数据