資源描述:
《屏蔽后退按鈕》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、在JSP頁面加下面清除緩存代碼試下看看:?<%?response.setHeader("Pragma","No-cache");?response.setHeader("Cache-Control","no-cache");?response.setDateHeader("Expires",0);?%>1、加個防重復(fù)提交代碼,Struts里面有的2、Action中跳轉(zhuǎn)時,不要使用mapping.findForward()方式跳轉(zhuǎn),跳轉(zhuǎn)時候,用returnnewActionForward("URL",true);3、在頁面上加上判斷session,為空,則sess
2、ion失效2、當開發(fā)有密碼登陸的系統(tǒng)時,用戶退出系統(tǒng)以后,有些頁面是不應(yīng)該讓用戶使用的,但是由于動態(tài)緩存,用戶可以點擊瀏覽器的后退按鈕去訪問一些不應(yīng)該訪問的內(nèi)容??赡軙话踩F鋵嵅皇潜仨毲宄彺?退出登陸后清除保存該用戶信息的session就可以.既然這個系統(tǒng)是要求登陸后才有權(quán)限使用.那么該系統(tǒng)的每一個動作都應(yīng)該檢查是否已經(jīng)登陸.也就是檢查保存登陸用戶信息的session是否存在.退出登陸后把session清除,就算退回上一頁面,那也根本無法操作系統(tǒng).//javascript:window.histor
3、y.forward(1);dddd首先,作為開發(fā)人員,攔截是必須的,無論是安全攔截還是異常攔截。我們先分析為什么通過瀏覽器返回訪問的原因:1.瀏覽器緩存??我們有時候會發(fā)現(xiàn)是退出系統(tǒng)了可是通過歷史記錄或者直接訪問地址,最后一次操作的數(shù)據(jù)或顯示的列表還在那里,一堆人在冒汗,說你系統(tǒng)不安全!??其實這時候并沒有訪問到系統(tǒng),是本地的瀏覽器緩存在做怪。2.沒
4、有做權(quán)限攔截??很多人在做程序的時候可能會忘記去注意權(quán)限分配了,有些功能是要求用戶在登錄狀態(tài)下使用的,甚至是某個角色的用戶才可以操作的。如果沒有做這些限制,很容易被人利用,最簡單的就是通過地址直接訪問。這兩個方面內(nèi)容是造成問題出現(xiàn)的絕大部分原因.解決方案:1.禁止緩存如:jsp<%response.setHeader("Pragma","No-Cache");response.setHeader("Cache-Control","No-Cache");response.setDateHeader("Expires",0);%>2.利用session在頁面進行攔截
5、如:jsp原碼Stringuserid=(String)session.getValue("userid");if(userid==""
6、
7、userid==null)//判斷指定session值的存在與否,來檢查是否已經(jīng)登錄{?跳轉(zhuǎn)到提示頁面}else{?其他主體程序代碼}利用以上兩個方法同時使用,能夠解決大部分問題,包括瀏覽器返回的問題。3.利用struts配置攔截器4.涉及權(quán)限的就不能簡判斷有沒有登錄了,應(yīng)該取出用戶的權(quán)限值(一般也建議放入session,避免頻繁訪問數(shù)據(jù)庫)來判斷是否可以執(zhí)行,處理思路也和判斷有無登錄相同如:jspStringlevel=(
8、String)session.getValue("level");if(level==""
9、
10、level==null
11、
12、!level.equals("1"))//判斷指定session值的存在與否并檢查權(quán)限值{?跳轉(zhuǎn)到提示頁面}else{?其他主體程序代碼}希望對大家有用,有寫得不好的,請各位長輩指正。關(guān)鍵字:重復(fù)一。前言你在任何一個比較專業(yè)的BBS都會看到這樣的問題,即使你Google一下,也會發(fā)現(xiàn)有很多的人在關(guān)注和詢問,但大家給出的解決方法卻都是千差萬別,(有的人主張采用腳本來解決;有的則想重定向到別的頁面;有的則將此問題提升到Token的角度)為什么會有如
13、此大的差異呢?二。問題場景首先,我們應(yīng)該先了解為什么要處理這樣的問題?或者專業(yè)一點就是它適合的場景是什么?(似乎只有人來問沒有人來解釋)1。重復(fù)提交、重復(fù)刷新的場景重復(fù)提交、重復(fù)刷新都是來解決系統(tǒng)重復(fù)記錄的問題。也就是說某個人在多次的提交某條記錄(為什么?也許是閑了沒有事情干的;最有可能是用戶根本就不知道自己的提交結(jié)果是否已經(jīng)執(zhí)行了??。5霈F(xiàn)了這樣的問題并不見得就必須處理,要看你所開發(fā)的系統(tǒng)的類別而定。比如你接手的是某個資源管理系統(tǒng),系統(tǒng)本身從需求的角度根本就不允許出現(xiàn)"重復(fù)"的記錄,在這樣需求的約束條件下,去執(zhí)行重復(fù)的提交動作只會引發(fā)“業(yè)務(wù)級異?!钡漠a(chǎn)生,
14、根本就不可能執(zhí)行成功也就