关于Tomcat如何处理Open Redirect的问题
Thursday, 18 February, 2016 5:03 PM
最近處理security issue的時(shí)候,遇到一個(gè)問題。由于對(duì)tomcat的機(jī)制不是很熟悉,所以沒啥頭緒。
問題如下
https://jerry-storefront-ui-test-v1.us-east.cf.yaas.io///example.com/a 這個(gè)URL會(huì)redirect到example.com/a/ (請(qǐng)拷貝https://jerry-storefront-ui-test-v1.us-east.cf.yaas.io///example.com/a,而不是直接點(diǎn)擊)
https://jerry-agenthome-ui-test-v1.us-east.cf.yaas.io///example.com/a/ 這個(gè)URL就會(huì)報(bào)資源沒法找到(請(qǐng)拷貝https://jerry-agenthome-ui-test-v1.us-east.cf.yaas.io///example.com/a/,而不是直接點(diǎn)擊)
兩個(gè)差不多的URL,但是得到不同的處理。我猜想應(yīng)該是使用的tomcat版本不同或者tomcat的配置不同。但是我不知道用什么方法去驗(yàn)證這個(gè)猜想。
為什么第一個(gè)請(qǐng)求會(huì)先返回303 error,然后再去取一次,于是遇到404 error,而第二個(gè)請(qǐng)求沒有重定向,直接404 not found error?
我以前在ABAP里處理過類似的重定向問題,因?yàn)镾AP的netweaver也能作為web server用,所以在ABAP里要實(shí)現(xiàn)來一個(gè)url,動(dòng)態(tài)決定其response code,比如200還是303,404 都是可以通過配置或者寫代碼來實(shí)現(xiàn)的:
http://scn.sap.com/docs/DOC-53666
但是這個(gè)case,https://jerry-storefront-ui-test-v1.us-east.cf.yaas.io這個(gè)url到底是run在什么server上的。Tomcat?
我在https://tomcat.apache.org/里看到了status code 303對(duì)應(yīng)定義的constant SC_SEE_OTHER.
如果url是Tomcat的servlet 服務(wù)的話,據(jù)我所知這些status code只可能是Servlet實(shí)現(xiàn)里set進(jìn)去的,像這樣:
http://kodejava.org/how-do-i-send-a-response-status-in-servlet/
所以最準(zhǔn)確的辦法就是找到Servlet實(shí)現(xiàn)的代碼,看代碼在什么情況下會(huì)拋出SC_SEE_OTHER.
Tomcat除了通過Servlet寫代碼實(shí)現(xiàn)給Response賦上不同的status code之外,是否還能通過配置xml的方式,做到不同的url進(jìn)來,自動(dòng)響應(yīng)以不同的status code?
要獲取更多Jerry的原創(chuàng)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙":
總結(jié)
以上是生活随笔為你收集整理的关于Tomcat如何处理Open Redirect的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 股票数字暗语
- 下一篇: 奇瑞 QQ 冰淇淋 170KM 新版车型