




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第Springboot如何去掉URL后面的jsessionid目錄如何去掉URL后面的jsessionidurl中有Jsessionid生成的原因解決方式一解決方式二Java關(guān)于jsessionid和URL對(duì)SEO的沖擊安全問題解決之道
如何去掉URL后面的jsessionid
url中有Jsessionid生成的原因
jsessionid是標(biāo)明session的id,它存在于cookie中,一般情況不會(huì)出現(xiàn)在url中,服務(wù)器會(huì)從客戶端的cookie中取出來,但是如果客戶端禁用了cookie的話,就要重寫url了,顯式的將jsessionid重寫到Url中,方便服務(wù)器來通過這個(gè)找到session的id。
如果客戶端請求的cookie中不包含JSESSIONID,服務(wù)端調(diào)用request.getSession()時(shí)就會(huì)生成并傳遞給客戶端,此次響應(yīng)頭會(huì)包含設(shè)置cookie的信息
如果客戶端請求的cookie中包含JSESSIONID,服務(wù)端調(diào)用request.getSession()時(shí)就會(huì)根據(jù)JSESSIONID進(jìn)行查找對(duì)象,如果能查到就返回,否則就跟沒傳遞JSESSIONID一樣;
解決方式一
springBoot2.0之前版本
在.yml配置文件中做如下配置
解決方式二
在啟動(dòng)類中繼承SpringBootServletInitializer,然后重寫這個(gè)方法(此方法在springBoot2.0之前版本沒有起作用,暫時(shí)做記錄)
publicvoidonStartup(ServletContextservletContext)throwsServletException{
super.onStartup(servletContext);
//ThiswillsettouseCOOKIEonly
servletContext.setSessionTrackingModes(
Collections.singleton(SessionTrackingMode.COOKIE)
//ThiswillpreventanyJSonthepagefromaccessingthe
//cookie-itwillonlybeused/accessedbytheHTTPtransport
//mechanisminuse
SessionCookieConfigsessionCookieConfig=
servletContext.getSessionCookieConfig();
sessionCookieConfig.setHttpOnly(true);
}
Java關(guān)于jsessionid和URL
在寫JSP程序時(shí),經(jīng)常發(fā)現(xiàn)url中有一個(gè)jsessionid參數(shù),在刷新之后就消失了。一些人認(rèn)為這是個(gè)一個(gè)BUG。
這不是一個(gè)bug。當(dāng)一個(gè)新的session被創(chuàng)建時(shí),server并不確定客戶端是否支持cookies,所以它生成了一個(gè)cookie,就是URL中jsessionid的值。當(dāng)客戶端在第二次帶著cookie返回時(shí),服務(wù)器就知道jsessionid不是必須的,所以就會(huì)刪掉它。如果客戶端沒有帶著cookie返回,服務(wù)器就會(huì)繼續(xù)在url中添加jsessionid參數(shù)。
但是現(xiàn)在幾乎很難想象瀏覽器會(huì)不支持cookie。jsessionid參數(shù)也可能會(huì)給SEO和安全帶來一定問題。
對(duì)SEO的沖擊
有些搜索引擎可能會(huì)懲罰(找不到更好的詞形容)那些具有多個(gè)不同url但內(nèi)容相同的網(wǎng)站。因?yàn)閟essionid是唯一的,所以多個(gè)搜索機(jī)器人將返回相同的內(nèi)容但url不同。
這是一個(gè)嚴(yán)重的問題。我們試一下用google搜索inurl:;jsessionid,Google的搜索結(jié)果:About211,000,000results(0.25seconds)
安全問題
在url中包含sessionId不是一個(gè)明智之舉,這將為攻擊者提供便利。
解決之道
不幸的是ServletSpecification和ServletContainers中并未提供一個(gè)標(biāo)準(zhǔn)的方法去禁止在url中帶jsessionid。
不過我們可以通過servletfilter去解決這個(gè)問題。
packagecom.lgete.web.filter;
importjava.io.IOException;
importjavax.servlet.*;
importjavax.servlet.http.*;
*@authorZhuJiaa
*href="mailto:zhujia7895@"rel="externalnofollow"zhujia7895@/a
publicclassURLSessionFilterimplementsFilter{
publicvoiddoFilter(ServletRequestrequest,ServletResponseresponse,
FilterChainchain)throwsIOException,ServletException{
if(!(requestinstanceofHttpServletRequest)){
chain.doFilter(request,response);
return;
HttpServletResponsehttpResponse=(HttpServletResponse)response;
HttpServletResponseWrapperwrappedResponse=newHttpServletResponseWrapper(
httpResponse){
publicStringencodeRedirectUrl(Stringurl){
returnurl;
publicStringencodeRedirectURL(Stringurl){
returnurl;
publicStringencodeUrl(Stringurl){
returnurl;
publicStringencodeURL(Stringurl){
returnurl;
chain.doFilter(request,wrappedResponse);
publicvoidinit(FilterConfigfilterConfig){
publicvoiddestroy(){
}
在web.xml中添加以下內(nèi)容:
filter
filter-nameURLSessionFilter/filter-name
filter-classzj.web.filter.URLSessionFilter/filter-class
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中生物期末復(fù)習(xí)提綱課件
- 2025年專業(yè)足浴場所員工培訓(xùn)與發(fā)展規(guī)劃及成果評(píng)定協(xié)議
- 2025醫(yī)療設(shè)備租賃與深度定制化售后技術(shù)支持合同樣本
- 2025年城市中小學(xué)短期學(xué)科教師聘任合同書
- 2025年智慧校園安防監(jiān)控系統(tǒng)設(shè)備供應(yīng)及施工安裝合同
- 2025年油氣田區(qū)塊收購與礦權(quán)質(zhì)押融資服務(wù)合同
- 2025年重型貨車抵押借款債權(quán)回購服務(wù)合同
- 2025年新能源汽車抵押個(gè)人消費(fèi)貸款合同范本
- 2025年北京高端住宅物業(yè)管理服務(wù)合同
- 2025年大型會(huì)展活動(dòng)餐飲服務(wù)及食品安全監(jiān)督合同
- 初中地理學(xué)科課程規(guī)劃方案
- 定額〔2025〕1號(hào)文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價(jià)格水平調(diào)整的通知
- 食品安全責(zé)任保險(xiǎn)課件
- CML慢性髓系白血病醫(yī)學(xué)教學(xué)課件
- 塑膠模具類中英文對(duì)照專業(yè)術(shù)語
- 安全- 中國移動(dòng)認(rèn)證考試L1題庫(附答案)
- 干部民主推薦表(樣式)
- 【公開課】社區(qū)教案
- 平面磨床操作時(shí)注意事項(xiàng)
- GB/T 29651-2013錳礦石和錳精礦全鐵含量的測定火焰原子吸收光譜法
- GB/T 13275-1991一般用途離心通風(fēng)機(jī)技術(shù)條件
評(píng)論
0/150
提交評(píng)論