关于Tomcat如何处理Open Redirect的问题

简介: 关于Tomcat如何处理Open Redirect的问题

Thursday, 18 February, 2016 5:03 PM


最近处理security issue的时候,遇到一个问题。由于对tomcat的机制不是很熟悉,所以没啥头绪。

问题如下


https://jerry-storefront-ui-test-v1.us-east.cf.yaas.io///example.com/a 这个URL会redirect到example.com/a/ (请拷贝https://jerry-storefront-ui-test-v1.us-east.cf.yaas.io///example.com/a,而不是直接点击)


https://jerry-agenthome-ui-test-v1.us-east.cf.yaas.io///example.com/a/ 这个URL就会报资源没法找到(请拷贝https://jerry-agenthome-ui-test-v1.us-east.cf.yaas.io///example.com/a/,而不是直接点击)


两个差不多的URL,但是得到不同的处理。我猜想应该是使用的tomcat版本不同或者tomcat的配置不同。但是我不知道用什么方法去验证这个猜想。


为什么第一个请求会先返回303 error,然后再去取一次,于是遇到404 error,而第二个请求没有重定向,直接404 not found error?

image.png

我以前在ABAP里处理过类似的重定向问题,因为SAP的netweaver也能作为web server用,所以在ABAP里要实现来一个url,动态决定其response code,比如200还是303,404 都是可以通过配置或者写代码来实现的:


http://scn.sap.com/docs/DOC-53666


但是这个case,https://jerry-storefront-ui-test-v1.us-east.cf.yaas.io这个url到底是run在什么server上的。Tomcat?

我在https://tomcat.apache.org/里看到了status code 303对应定义的constant SC_SEE_OTHER.

image.png

http://kodejava.org/how-do-i-send-a-response-status-in-servlet/


所以最准确的办法就是找到Servlet实现的代码,看代码在什么情况下会抛出SC_SEE_OTHER.


Tomcat除了通过Servlet写代码实现给Response赋上不同的status code之外,是否还能通过配置xml的方式,做到不同的url进来,自动响应以不同的status code?


相关文章
|
11月前
|
应用服务中间件
Tomcat - 源码分析Tomcat是如何处理一个Servlet请求的
Tomcat - 源码分析Tomcat是如何处理一个Servlet请求的
55 0
|
应用服务中间件
unable to open the service “tomcat8“ (无法打开服务“tomcat8”)
unable to open the service “tomcat8“ (无法打开服务“tomcat8”)
122 0
unable to open the service “tomcat8“ (无法打开服务“tomcat8”)
|
Java 应用服务中间件
免安装版本tomcat 指定的服务并未以已安装的服务存在,Unable to open the service
今天在自己的电脑上安装了Tomcat6.0.14,是在Tomcat主页上直接下载的免安装版。但是把文件解压的之后,双击Tomcat6w.exe时,去出现了"指定的服务并未以已安装的服务存在,Unable to open the service"Tomcat5""。
1111 0
|
1月前
|
XML 应用服务中间件 Apache
Tomcat AJP连接器配置secretRequired=“true“,但是属性secret确实空或者空字符串,这样的组合是无效的。
Tomcat AJP连接器配置secretRequired=“true“,但是属性secret确实空或者空字符串,这样的组合是无效的。
|
4月前
|
Java 应用服务中间件 Maven
Maven - 两种Tomcat插件的配置
Maven - 两种Tomcat插件的配置
137 0
|
16天前
|
前端开发 Java 应用服务中间件
Springboot对MVC、tomcat扩展配置
Springboot对MVC、tomcat扩展配置
|
4月前
|
Java 应用服务中间件 容器
SpringBoot配置外部Tomcat并打war包
SpringBoot配置外部Tomcat并打war包
70 0
|
2天前
|
IDE JavaScript Java
如何配置tomcat
【4月更文挑战第15天】如何配置tomcat
11 2