`
chembo
  • 浏览: 940967 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

去除URL后面的jsessionid

阅读更多
jsessionid的危害及去除解决方案,原文:http://randomcoder.com/articles/jsessionid-considered-harmful

其实就是加个filter截取所有URL并进行重写:
public class DisableUrlSessionFilter implements Filter {

	@Override
	public void destroy() {
	}

	@Override
	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) throws IOException, ServletException {
		if (!(request instanceof HttpServletRequest)) {
			chain.doFilter(request, response);
			return;
		}
		HttpServletRequest httpRequest = (HttpServletRequest) request;
		HttpServletResponse httpResponse = (HttpServletResponse) response;
		if (httpRequest.isRequestedSessionIdFromURL()) {
			HttpSession session = httpRequest.getSession();
			if (session != null)
				session.invalidate();
		}
		HttpServletResponseWrapper wrappedResponse = new HttpServletResponseWrapper(
				httpResponse) {
			public String encodeRedirectUrl(String url) {
				return url;
			}

			public String encodeRedirectURL(String url) {
				return url;
			}

			public String encodeUrl(String url) {
				return url;
			}

			public String encodeURL(String url) {
				return url;
			}
		};
		chain.doFilter(request, wrappedResponse);
	}

	@Override
	public void init(FilterConfig filterConfig) throws ServletException {
	}


}

然后是web.xml的配置:
	<!--to disable jsessionid in url  -->
	<filter>
	  <filter-name>
	    DisableUrlSessionFilter
	  </filter-name>
	  <filter-class>
	   com.abc.web.filter.DisableUrlSessionFilter
	  </filter-class>
	</filter>
	
	<filter-mapping>
	  <filter-name>DisableUrlSessionFilter</filter-name>
	  <url-pattern>/*</url-pattern>
	</filter-mapping>
分享到:
评论
3 楼 java-lxm 2015-12-24  
twovs 写道
他根本就没试验过,只是照抄而已,urljsessionid
根本不理会这个filter,照样带着
那应该如何处理呢
2 楼 twovs 2012-06-30  
他根本就没试验过,只是照抄而已,urljsessionid
根本不理会这个filter,照样带着
1 楼 murener 2011-12-30  
那session不是丢失了吗?

相关推荐

    android获取jsessionId和发送jsessionId

    在Android开发中,与服务器进行交互是常见的任务,而`jsessionId`是Web应用程序中用于跟踪用户会话的一种机制。本文将详细讲解如何在Android客户端获取`jsessionId`以及如何在后续请求中发送`jsessionId`,以保持...

    jsessionid存在的问题及其解决方案

    它通常被附加到URL后面,以便在页面重定向或刷新时保持会话状态。然而,这种方式存在一些问题: 1. **安全性**:`jsessionid`暴露在URL中可能带来安全风险,如会话劫持或跨站脚本攻击(XSS)。攻击者可以通过获取...

    UrlFilter过滤jsessionId

    - **用户体验提升:**去除URL中的`jsessionId`可以使URL更加简洁美观,提升用户体验。 - **兼容性改进:**有些客户端或中间件可能不支持URL中的`jsessionId`,通过过滤可以提高系统的兼容性。 #### 五、总结 `...

    tomcat修改jsessionid在cookie中的名称

    ### Tomcat中修改JSessionID在Cookie中的名称 在Tomcat服务器中,默认情况下,用于传递会话标识(即JSessionID)的Cookie名称为“JSESSIONID”。有时,出于安全考虑或其他需求,我们可能需要自定义这个名称。本文将...

    获取JsessionId

    重定义URL 使其直接进去网页 不用登录 用于:邮件链接直接进入网站

    URL重写概念和例子

    jsessionid=1234 ``` 这种方式虽然简单,但在安全性方面存在一定的风险。 #### 八、URL重定向 **URL重定向**用于处理无效的URL或不再存在的资源。例如,可以使用Apache的`ErrorDocument`指令将404错误页面重定向...

    Set-Cookie: JSESSIONID=8AB51DC4244907FD9EBB063C7FD73CBA; Path=/; HttpOnly

    Cookie 路径属性安全设置 ...然而,在某些情况下,Cookie 中的路径属性可能会泄露项目路径,导致安全风险。本文将介绍如何解决 Cookie 路径属性暴露问题。 Cookie 路径属性的危险 在服务器中的项目中,如果 Cookie...

    java实现多次HttpURLConnection共享session

    // 解析cookieHeader,例如:JSESSIONID=123456; Path=/; HttpOnly // 使用CookieManager的CookiePolicy接受所有Cookie cookieManager.getCookieStore().add(null, parseCookie(cookieHeader)); } ``` 4. 共享...

    java 转换 IE JESSIONID

    例如,将`JSESSIONID`添加到URL后面,如`http://example.com/?JSESSIONID=abc123`。 4. **源码解析**: - 博文链接中的“1973323”可能是博客文章的ID,访问这个链接可以查看具体的实现细节。源码中可能会包含如何...

    session的生命周期1

    这意味着服务器会将`Session ID`附加到URL路径后面,使得即使没有`Cookie`,服务器也能通过解析URL来识别用户`Session`。`HttpServletResponse.encodeURL(String url)`方法用于实现这个过程。 - **URL重写与Cookie...

    使用redis解决nginx+tomcat8负载均衡集群session共享问题jar包

    这里,`$cookie_JSESSIONID`表示根据用户cookie中的JSESSIONID来确定服务器,`consistent`则确保哈希算法的稳定性。 **session共享的优势** 1. **高可用性**: Redis提供了复制和哨兵监控等机制,增强了session数据...

    一个服务器搭多个tomcat导致session丢失,或者同一个IP不同端口,多个应用的session会冲突解决方法

    经过资料查找,发现问题是因为:IP相同认为是同一个域,接收了B的set-cookie指令,把对应的cookie内容覆盖了,其中包括jsessionid,造成A的session丢失。 如果IP不同,则不会发生这个问题。IP相同的两个session对应的...

    CASClient集群环境的Session问题及解决方案.docx

    在 CASClient 中,可以配置一个统一的注销 URL,当用户注销时,可以将用户重定向到这个 URL,从而实现统一注销。 配置 CASClient 为了实现单点登录和统一注销,需要在 web.xml 中进行相应的配置。需要配置 ...

    java中Cookie被禁用后Session追踪问题

    一.服务器端获取Session对象依赖于...Java中给出了再所有的路径的后面拼接JSESSIONID信息。 在 Session1Servlet中,使用response.encodeURL(url) 对超链接路径拼接 session的唯一标识 // 当点击 的时候跳转到 sess

    session的实现方式

    因此,但你刷新上一次的请求时,页面会输出一个名为 JSESSIONID 的 Cookie,后面就是相应的 Cookie 值,也就是本次“会话”的 SessionID,但你再次刷新此页面时会得到相同的输出,因为在一次“会话”中,请求信息...

    Spring Framework最新版本 spring-webmvc-5.2.9.RELEASE

    避免可能会绕过CVE-2015-5211对RFD攻击的保护,具体取决于通过使用jsessionid路径参数使用的浏览器。

    K8_Struts2.3.1.4 s2-013 0day利用工具+动画

    关于2010那洞 我就不说了 2011那个也不说了 (这两成功率 还是顶高的) s2-013 实战 鸡肋 (要不然这工具也不会丢出来了 最好你自己打个环境来测一下 免得你以为...inurl: *.jsp;jsessionid 能不能搞到 纯属看你人品了

    理解session机制

    jsessionid=...”,使得浏览器在每次请求时都将Session ID包含在URL中。表单隐藏字段则是服务器在表单中添加一个隐藏的字段,字段名通常为“jsessionid”,值为Session ID。虽然表单隐藏字段已较少使用,但在某些旧...

    08-Session-Tracking-Chinese.pdf

    - 在每个发送给客户端的URL后面加上会话标识符。 - 客户端每次请求时,都会携带带有会话标识符的URL。 - 服务器端解析URL获取会话标识符,进而获取对应的会话信息。 ##### 3.3 使用隐藏的表单域进行会话跟踪 **...

    servlet中关于session的理解

    具体来说,服务器会在响应中返回的URL后面加上`;JSESSIONID=xxxxx`这样的参数,从而在客户端请求时携带Session ID。 ```java String encodedUrl = response.encodeURL("/somePage.jsp"); ``` 上述代码中,如果...

Global site tag (gtag.js) - Google Analytics