tomcat配置url跳转_关于Tomcat如何处理Open Redirect的问题

Thursday, 18 February, 2016 5:03 PM

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

问题如下

1. 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,而不是直接点击)

2. 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?

dfd48b3fbac64fbc1902ee63f7bb7ad5.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.

7436c588ffa8436e5d133cc8e7edc73e.gif
4267529a0b9561a71ebae31c5f4e8793.gif
00f6b31c44c05d728badf7f6780e3c24.gif

如果url是Tomcat的servlet 服务的话,据我所知这些status code只可能是Servlet实现里set进去的,像这样:

c59b816598979f7162254a42209916e4.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?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值