亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > JSP學習之Java Web中的安全控制實例詳解

JSP學習之Java Web中的安全控制實例詳解

熱門標簽:北票市地圖標注 高德地圖標注樣式 電銷機器人好賣么 商洛電銷 地圖標注線上教程 四川保險智能外呼系統商家 杭州ai語音電銷機器人功能 杭州語音電銷機器人軟件 電銷機器人是有一些什么技術

本文實例講述了JSP學習之Java Web中的安全控制。分享給大家供大家參考。具體如下:

一、目標:

① 掌握登錄之后的一般處理過程;
② 能夠為每個頁面添加安全控制;
③ 能夠共享驗證代碼;
④ 使用過濾器對權限進行驗證;
⑤ 能夠對文件的局部內容進行驗證;
⑥ 掌握安全驗證碼的基本實現方式;
⑦ 通過異常處理增強安全性。

二、主要內容:

① 通過修改前面的登錄功能,分別對管理員和普通用戶的登錄進行處理;
② 為管理員才能訪問的頁面添加控制;
③ 共享各個頁面中的控制代碼,使用專門的文件,然后在需要的時候調用;
④ 使用過濾器降低重復驗證代碼;
⑤ 通過標準標簽庫完成頁面局部信息的安全控制;
⑥ 介紹安全驗證碼的基本實現方式;

1、完善登錄功能

正常情況下,管理員登錄成功之后跳轉到管理員默認工作界面;普通用戶登錄之后跳轉到普通用戶默認工作界面;用戶登錄失敗后跳轉到登錄界面重新登錄。
為了完成這個功能,需要編寫管理員界面和普通用戶界面。
管理員界面對應的文件為manager.jsp,代碼如下:

manager.jsp代碼:

復制代碼 代碼如下:
%@ page contentType="text/html;charset=gb2312"%>

管理員操作界面

普通用戶界面對應的文件為commonuser.jsp,代碼如下:

commonuser.jsp代碼:

復制代碼 代碼如下:
%@ page contentType="text/html;charset=gb2312"%>

普通用戶界面

修改登錄的Servlet,修改后的代碼如下:

LoginProcess.java代碼:

package servlet;
import javabean.User;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginProcess extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {
       doPost(request,response);
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {
       // 獲取信息
       String username = request.getParameter("username");
       String userpass = request.getParameter("userpass");
       // 調用JavaBean
       User user = new User();
       user = user.findUserByName(username);
       String forward;
       if(user==null){
           forward="failure.jsp";
       }else if(user.getUserpass().equals(userpass)){
           if(user.getUsertype().equals("1")){
              forward="manager.jsp";
           }
           else{
              forward="commonuser.jsp";
           }
       }else{
           forward="failure.jsp";
       }
       RequestDispatcher rd = request.getRequestDispatcher(forward);
       rd.forward(request,response);
    }
}

2、為每個界面添加安全控制

上面的實例中登錄成功后會跳轉到管理員界面或者普通用戶界面,但是如果用戶直接輸入管理員界面,就會跳過登錄界面。例如用戶可以直接輸入:http://127.0.0.1:8080/ch11/manager.jsp。

為了解決這個問題,在每個有安全限制的界面都應該增加安全控制。需要完成兩項工作:

① 在登錄之后把用戶的信息寫入到session中;
② 在每個頁面中,從session中獲取信息進行驗證;

在登錄之后把用戶信息寫入到session中,下面是修改后的LoginProcess.java代碼:

LoginProcess.java代碼:

package servlet;
import javabean.User;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
public class LoginProcess extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {
       doPost(request,response);
    }
    public void doPost(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {
       // 獲取信息
       String username = request.getParameter("username");
       String userpass = request.getParameter("userpass");
       // 調用JavaBean
       User user = new User();
       user = user.findUserByName(username);
       // 得到session對象
       HttpSession session = request.getSession(true);
       String forward;
       if(user==null){
           forward="failure.jsp";
       }else if(user.getUserpass().equals(userpass)){
           if(user.getUsertype().equals("1")){
              // 在session對象中存儲信息
              session.setAttribute("usertype","1");
              forward="manager.jsp";
           }
           else{
              session.setAttribute("usertype","0");
              forward="commonuser.jsp";
           }
       }else{
           forward="failure.jsp";
       }
       RequestDispatcher rd = request.getRequestDispatcher(forward);
       rd.forward(request,response);
    }
}

以commonuser.jsp為例介紹如何在每個文件中進行安全控制,下面是修改后的代碼:

commonuser.jsp代碼:

%@ page contentType="text/html;charset=gb2312"%>
%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
c:if test="${usertype!=/"0/"}">
  jsp:forward page="login.jsp"/>
/c:if>

普通用戶界面

這樣,如果不登錄而直接訪問commonuser.jsp就會跳轉到登錄界面。

3、采用專門的文件進行驗證

因為很多頁面都要編寫驗證的代碼,所以可以把這些代碼放在一個文件中進行共享,需要的使用調用共享文件。下面仍然以commonuser.jsp為例介紹如何實現驗證代碼的共享。

使用專門的文件存放共享代碼:

check.jsp代碼:

%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
c:if test="${usertype!=/"0/"}">
  jsp:forward page="login.jsp"/>
/c:if>

在需要驗證的文件中導入這個專門的文件。以commonuser.jsp為例:

commonuser.jsp代碼:

%@ page contentType="text/html;charset=gb2312"%>
%@ include file="check.jsp" %>

普通用戶界面

使用include指令包含目標文件,在把JSP轉換成Java文件的時候,會把目標文件的代碼拷貝到當前文件。
再運行測試,結果是相同的。

4、使用過濾器對權限進行驗證

把具有相同權限要求的文件放在相同的文件夾下,對文件夾的訪問進行統一的過濾。

編寫用于過濾的Servlet,代碼如下:

CommonCheck.java代碼:

package servlet;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CommonCheck extends HttpServlet implements Filter {
public void doFilter(ServletRequest arg0, ServletResponse arg1,
        FilterChain arg2) throws IOException, ServletException {
    // 得到session
    HttpSession session = ((HttpServletRequest)arg0).getSession(true);
    // 得到用戶類型
    String usertype = (String)session.getAttribute("usertype");
    // 進行判斷
    if(usertype==null || usertype.equals("1")){
        ((HttpServletResponse)arg1).sendRedirect("./../login.jsp");
    }
    // 繼續調用其他的過濾器
    try{
        arg2.doFilter(arg0, arg1);
    }catch(Exception e){}
}
public void init(FilterConfig arg0) throws ServletException {
    // TODO Auto-generated method stub
}
}

配置過濾器,過濾器的配置與Servlet的配置非常類似,在web.xml中添加如下代碼:

filter>
  filter-name>CommonCheck/filter-name>
  filter-class>servlet.CommonCheck/filter-class>
/filter>
 filter-mapping>
  filter-name>CommonCheck/filter-name>
  url-pattern>/commonuser/*/url-pattern>
 /filter-mapping>

url-pattern中使用/commonuser/*,這樣只要訪問commonuser這個文件夾,就會訪問這個過濾器,如果用戶沒有登錄,將不能訪問目標文件。

測試:為了測試需要創建一個文件夾commonuser,把commonuser.jsp拷貝到commonuser文件中。

測試過程如下:

先直接訪問:http://127.0.0.1:8080/ch11/commonuser/commonuser.jsp,你會發現顯示的是登錄界面,就是因為沒有登錄而訪問了commonuser中的文件,過濾器進行處理,然后跳轉到登錄界面了。

然后在登錄界面輸入正確的用戶名和口令,然后再次在地址欄中輸入上面的地址,這時候會看到commonuser.jsp文件的內容。表示驗證通過。

5、對文件局部內容的安全進行控制

前面介紹的都是文件級別的安全控制,有時候需要對文件中部分內容進行安全控制,例如物品信息列表這樣的界面,如果當前用戶是管理員,則可以在其中完成管理功能,而對于普通用戶來說,而不可以,這就需要進行局部的控制。局部控制主要是通過標準標簽庫中的c:if>標簽來完成。

6、安全驗證碼的基本實現方式

為了增強網站的安全性,很多網站采用了很多安全措施。例如SSL方式的訪問、U盾和口令卡(工商銀行)、信息加密等。安全驗證碼是現在比較流行的有效的一個安全措施,能夠有效的解決用戶通過遍歷所有可能的組合來破解密碼的問題。
基本工作原理如下:每次客戶端訪問服務器的時候,服務器會生成驗證碼,以圖形的形式顯示給用戶,同時在服務器上保留備份,用戶在提交信息的時候需要把驗證碼同時提交道服務器,服務器接收到驗證碼之后與服務器端的驗證碼進行比較,如果相同則進行處理。如果不同,則讓用戶重新輸入。因為每次都變化,所有用戶如果想破解密碼,首先要應付變化的安全驗證碼,所以加大了破解的難度。

7、通過異常處理增強安全性

有時候用戶的攻擊是根據網站所使用的服務器來進行了,因為很多服務器都有自己的bug。如果不能對異常進行有效的處理,錯誤信息會顯示在客戶端,從錯誤信息中可以讓客戶發現服務器的版本信息,這樣就為用戶的惡意攻擊提供了便利條件。

例如,用于輸入:http://127.0.0.1:8080/ch11/abc.jsp

而abc.jsp是一個不存在的文件,這時候如果不進行處理,會在客戶端顯示服務器的信息。

如果能夠對各種異常進行處理,不讓用戶看到你所使用技術和服務器,這樣客戶進行攻擊的難度就加大了。

曾經有一個學生作了這樣一件事情:使用JSP技術完成了一個網站,然后通過配置之后,客戶端訪問的時候,使用的文件后綴名都是php,給人的感覺就像是采用php技術編寫的網站。

希望本文所述對大家的JSP程序設計有所幫助。

您可能感興趣的文章:
  • linux(center OS7)安裝JDK、tomcat、mysql 搭建java web項目運行環境
  • 詳解CentOS安裝tomcat并且部署Java Web項目
  • centos上安裝配置java WEB環境
  • 使用純Java實現一個WebSSH項目的示例代碼
  • Java實現基于NIO的多線程Web服務器實例
  • Java web三件套listener、filter、servelt原理解析
  • Java web xml文件讀取解析方式
  • 常見JavaWeb安全問題和解決方案

標簽:丹東 紅河 云浮 江西 貴州 青島 宿州 西藏

巨人網絡通訊聲明:本文標題《JSP學習之Java Web中的安全控制實例詳解》,本文關鍵詞  JSP,學,習之,Java,Web,中的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《JSP學習之Java Web中的安全控制實例詳解》相關的同類信息!
  • 本頁收集關于JSP學習之Java Web中的安全控制實例詳解的相關信息資訊供網民參考!
  • 推薦文章
    日韩免费在线视频| 一级毛片看真人在线视频| 久久国产影院| 精品在线观看国产| 二级特黄绝大片免费视频大片| 国产麻豆精品高清在线播放| 成人影院一区二区三区| 韩国毛片免费大片| 成人免费网站视频ww| 天天色色色| 黄色免费网站在线| 久久精品成人一区二区三区| 成人高清护士在线播放| 欧美一级视频免费观看| 成人免费高清视频| 亚洲 国产精品 日韩| 国产网站免费| 国产不卡高清在线观看视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 精品视频在线观看一区二区| 999久久久免费精品国产牛牛| 韩国三级香港三级日本三级| 毛片成人永久免费视频| 韩国毛片免费大片| 韩国毛片免费大片| 亚久久伊人精品青青草原2020| 亚洲爆爽| 亚洲第一色在线| 国产不卡在线播放| 久久精品免视看国产成人2021| 精品国产亚一区二区三区| 精品视频一区二区| 青青青草影院 | 欧美一区二区三区在线观看| 国产麻豆精品hdvideoss| 久久久久久久网| 天天色色色| 韩国毛片 免费| 国产成人精品综合| 久久精品欧美一区二区| 免费国产在线视频| 精品在线观看一区| 精品久久久久久中文| 日本特黄特黄aaaaa大片| 午夜在线亚洲| 精品视频在线观看一区二区| 欧美激情一区二区三区在线 | 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 日本免费看视频| 亚欧成人乱码一区二区| 精品美女| 国产成人欧美一区二区三区的| 日韩男人天堂| 日韩在线观看视频黄| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 国产网站免费观看| 国产一区二区高清视频| 欧美激情一区二区三区在线 | 国产成人啪精品| 久久国产影视免费精品| 黄视频网站免费| 亚洲天堂在线播放| 日本免费乱人伦在线观看| 久久精品欧美一区二区| 欧美爱色| 国产成a人片在线观看视频| 日韩免费在线视频| 欧美另类videosbestsex久久| 国产高清在线精品一区a| 国产视频在线免费观看| 日韩在线观看视频免费| 美女被草网站| 国产一级强片在线观看| 日韩在线观看免费完整版视频| 青青久久网| 99热精品一区| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 青青久久精品| 欧美大片一区| 欧美日本韩国| 日韩男人天堂| 欧美电影免费| 国产激情一区二区三区| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 可以免费看污视频的网站| 国产麻豆精品免费视频| 中文字幕一区二区三区 精品 | 91麻豆精品国产片在线观看| 高清一级片| 免费的黄色小视频| 黄色免费三级| 韩国三级视频在线观看| 国产伦久视频免费观看视频| 日韩av成人| 九九免费高清在线观看视频| 成人影视在线播放| 美女免费毛片| 色综合久久手机在线| 久久国产影院| 久久99中文字幕| 精品久久久久久免费影院| 亚洲天堂在线播放| 99久久精品国产麻豆| 亚洲精品永久一区| 欧美电影免费看大全| 999久久66久6只有精品| 亚洲天堂在线播放| 国产网站在线| 国产a毛片| 99久久精品国产高清一区二区| 精品视频在线观看免费| 成人免费一级纶理片| 高清一级毛片一本到免费观看| 毛片成人永久免费视频| 日本在线播放一区| 亚洲第一页色| 成人免费一级毛片在线播放视频| 国产极品白嫩美女在线观看看| 天天色色色| 麻豆污视频| 成人a级高清视频在线观看| 尤物视频网站在线观看| 毛片电影网| 在线观看成人网| 亚洲精品中文一区不卡| 日本在线www| 午夜在线亚洲| 日本乱中文字幕系列 | 久草免费在线视频| 精品国产一区二区三区久 | 四虎影视库| 国产不卡精品一区二区三区| 欧美a免费| 黄色免费三级| 久久精品成人一区二区三区| 精品久久久久久中文| 亚洲第一页乱| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产综合91天堂亚洲国产| 精品毛片视频| 国产麻豆精品| 欧美1卡一卡二卡三新区| 国产一区免费在线观看| 黄视频网站免费观看| 亚洲女初尝黑人巨高清在线观看| 日韩中文字幕在线观看视频| 午夜激情视频在线播放| 国产一区二区精品久久91| 欧美激情一区二区三区视频高清| 久久国产一久久高清| 韩国毛片 免费| 日本在线不卡免费视频一区| 韩国三级视频网站| 日韩欧美一二三区| 久久国产影视免费精品| 国产视频久久久久| 国产一区二区精品久久| 黄色福利| 日本伦理片网站| 日韩欧美一及在线播放| 精品国产亚一区二区三区| 精品国产香蕉在线播出| 亚洲 激情| 999久久66久6只有精品| 欧美18性精品| 九九九网站| 91麻豆精品国产片在线观看| 天天色成人| 久久精品道一区二区三区| 色综合久久手机在线| 99久久精品国产麻豆| 尤物视频网站在线观看| 久久99这里只有精品国产| 免费毛片播放| a级黄色毛片免费播放视频| 午夜激情视频在线观看| 亚洲爆爽| 日本在线不卡免费视频一区| 国产不卡在线看| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日本在线不卡视频| 精品视频免费在线| 精品久久久久久影院免费| 国产欧美精品午夜在线播放| 日本伦理片网站| 黄视频网站免费看| 中文字幕Aⅴ资源网| 久久精品人人做人人爽97| 九九免费精品视频| 国产网站在线| 国产视频一区二区在线播放| 日韩一级黄色| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 麻豆系列 在线视频| 日日日夜夜操| 国产成+人+综合+亚洲不卡| 日日夜夜婷婷| 日本伦理片网站| 中文字幕一区二区三区精彩视频 | 亚洲 男人 天堂|