Spring中使用拦截器配置HttpOnly,来提升WEB应用程序的安全性
来源:互联网 发布:淘宝店铺怎么做广告 编辑:程序博客网 时间:2024/05/22 00:32
由于最近公司的项目做了安全评测,里面有一项是关于HttpOnly的.所以了总结一下... 废话不多说,先来说下它是干什么的吧.
随着B/S的普及,我们平时上网都是依赖于http协议完成,而Http是无状态的,即同一个会话的连续两个请求互相不了解,他们由最新实例化的环境进行解析,除了应用本身可能已经存储在全局对象中的所有信息外,该环境不保存与会话有关的任何信息,http是不会为了下一次连接而维护这次连接所传输的信息的。所以为了在每次会话之间传递信息,就需要用到cookie和session,无论是什么,都是为了让服务器端获得一个token来检查合法性,很多时候都是在cookie中存储一个JsessionID,服务器来识别该用户,那么安全隐患也就引申而出了,只要获得这个cookie,就可以取得别人的身份,特别是管理员等高级权限帐号时,危害就大了,而XSS就是在别人的应用程序中恶意执行一段JS以窃取用户的cookie。
1. 在拦截器中将需要的操作的cookie属性,使用response进行写回.
package com.pzdf.eqihua.sms.interceptor;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Locale;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web.servlet.ModelAndView;/** * <p>使用拦截器设置cookie的HttpOnly.</p> * <p>是为了防止XSS攻击,窃取cookie的内容.</p> * @author chenkangjing * @time 2017.5.24 */public class HttpOnlyInterceptor implements HandlerInterceptor {@Overridepublic void afterCompletion(HttpServletRequest request,HttpServletResponse response, Object arg2, Exception Exception)throws Exception {}@Overridepublic void postHandle(HttpServletRequest request, HttpServletResponse response,Object arg2, ModelAndView arg3) throws Exception {Cookie[] cookies = request.getCookies();if (cookies != null) {Cookie cookie = cookies[0];if (cookie != null) {// serlvet 2.5 不支持在 Cookie 上直接设置 HttpOnly 属性.String value = cookie.getValue();StringBuilder builder = new StringBuilder();builder.append("JSESSIONID=" + value + "; ");builder.append("Secure; ");builder.append("HttpOnly; ");Calendar calendar = Calendar.getInstance();calendar.add(Calendar.HOUR, 1);Date date = calendar.getTime(); Locale locale = Locale.CHINA; SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss",locale); builder.append("Expires=" + sdf.format(date)); response.setHeader("Set-Cookie", builder.toString()); }}}@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response,Object arg2) throws Exception {return true;}}
2. 在SpringMvc的配置文件中配置拦截器. 这里配置的是对所有访问.do的控制.
<mvc:interceptors><mvc:interceptor><mvc:mapping path="/**/*.do"/><bean class="com.pzdf.cms.intercepter.HttpOnlyInterceptor"></bean></mvc:interceptor></mvc:interceptors>
阅读全文
1 0
- Spring中使用拦截器配置HttpOnly,来提升WEB应用程序的安全性
- 利用Httponly提升web应用程序安全性
- 利用Httponly提升web应用程序安全性
- 利用Httponly提升web应用程序安全性
- 利用Httponly提升应用程序安全性
- 利用httponly提升应用程序安全性
- 使用HttpOnly提升Cookie安全性
- 使用HttpOnly提升Cookie安全性
- 使用HttpOnly提升Cookie安全性
- spring mvc中拦截器的配置和使用
- Web 应用程序的安全性
- spring mvc 中拦截器的使用
- spring中拦截器的使用
- 初学spring:web应用程序中使用Spring
- 使用 jQuery Mobile 提高 web 应用程序安全性
- 提升 web 应用程序的性能
- 在web应用程序中使用Spring
- 使用java配置类实现spring mvc的拦截器
- Selenium常用操作
- JDK中常用包及其类和功能详细剖析
- 进程与线程,形象的图片解释
- Android测试-- Uiautomatorviewer
- jsonp跨域
- Spring中使用拦截器配置HttpOnly,来提升WEB应用程序的安全性
- HDMI协议
- Python
- SQL优化
- python关于PIL安装
- RenderTexture截屏原理
- 安装MySQL之后,在cmd中MySQL命令不能识别
- echarts-简单使用
- Instrumentation 实践详解