校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁(yè) > 知識(shí)庫(kù) > JSP學(xué)習(xí)之Java Web中的安全控制實(shí)例詳解

JSP學(xué)習(xí)之Java Web中的安全控制實(shí)例詳解

熱門(mén)標(biāo)簽:北票市地圖標(biāo)注 高德地圖標(biāo)注樣式 電銷(xiāo)機(jī)器人好賣(mài)么 商洛電銷(xiāo) 地圖標(biāo)注線上教程 四川保險(xiǎn)智能外呼系統(tǒng)商家 杭州ai語(yǔ)音電銷(xiāo)機(jī)器人功能 杭州語(yǔ)音電銷(xiāo)機(jī)器人軟件 電銷(xiāo)機(jī)器人是有一些什么技術(shù)

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

一、目標(biāo):

① 掌握登錄之后的一般處理過(guò)程;
② 能夠?yàn)槊總€(gè)頁(yè)面添加安全控制;
③ 能夠共享驗(yàn)證代碼;
④ 使用過(guò)濾器對(duì)權(quán)限進(jìn)行驗(yàn)證;
⑤ 能夠?qū)ξ募木植績(jī)?nèi)容進(jìn)行驗(yàn)證;
⑥ 掌握安全驗(yàn)證碼的基本實(shí)現(xiàn)方式;
⑦ 通過(guò)異常處理增強(qiáng)安全性。

二、主要內(nèi)容:

① 通過(guò)修改前面的登錄功能,分別對(duì)管理員和普通用戶(hù)的登錄進(jìn)行處理;
② 為管理員才能訪問(wèn)的頁(yè)面添加控制;
③ 共享各個(gè)頁(yè)面中的控制代碼,使用專(zhuān)門(mén)的文件,然后在需要的時(shí)候調(diào)用;
④ 使用過(guò)濾器降低重復(fù)驗(yàn)證代碼;
⑤ 通過(guò)標(biāo)準(zhǔn)標(biāo)簽庫(kù)完成頁(yè)面局部信息的安全控制;
⑥ 介紹安全驗(yàn)證碼的基本實(shí)現(xiàn)方式;

1、完善登錄功能

正常情況下,管理員登錄成功之后跳轉(zhuǎn)到管理員默認(rèn)工作界面;普通用戶(hù)登錄之后跳轉(zhuǎn)到普通用戶(hù)默認(rèn)工作界面;用戶(hù)登錄失敗后跳轉(zhuǎn)到登錄界面重新登錄。
為了完成這個(gè)功能,需要編寫(xiě)管理員界面和普通用戶(hù)界面。
管理員界面對(duì)應(yīng)的文件為manager.jsp,代碼如下:

manager.jsp代碼:

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

管理員操作界面

普通用戶(hù)界面對(duì)應(yīng)的文件為commonuser.jsp,代碼如下:

commonuser.jsp代碼:

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

普通用戶(hù)界面

修改登錄的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");
       // 調(diào)用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、為每個(gè)界面添加安全控制

上面的實(shí)例中登錄成功后會(huì)跳轉(zhuǎn)到管理員界面或者普通用戶(hù)界面,但是如果用戶(hù)直接輸入管理員界面,就會(huì)跳過(guò)登錄界面。例如用戶(hù)可以直接輸入:http://127.0.0.1:8080/ch11/manager.jsp。

為了解決這個(gè)問(wèn)題,在每個(gè)有安全限制的界面都應(yīng)該增加安全控制。需要完成兩項(xiàng)工作:

① 在登錄之后把用戶(hù)的信息寫(xiě)入到session中;
② 在每個(gè)頁(yè)面中,從session中獲取信息進(jìn)行驗(yàn)證;

在登錄之后把用戶(hù)信息寫(xiě)入到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");
       // 調(diào)用JavaBean
       User user = new User();
       user = user.findUserByName(username);
       // 得到session對(duì)象
       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對(duì)象中存儲(chǔ)信息
              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為例介紹如何在每個(gè)文件中進(jìn)行安全控制,下面是修改后的代碼:

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>

普通用戶(hù)界面

這樣,如果不登錄而直接訪問(wèn)commonuser.jsp就會(huì)跳轉(zhuǎn)到登錄界面。

3、采用專(zhuān)門(mén)的文件進(jìn)行驗(yàn)證

因?yàn)楹芏囗?yè)面都要編寫(xiě)驗(yàn)證的代碼,所以可以把這些代碼放在一個(gè)文件中進(jìn)行共享,需要的使用調(diào)用共享文件。下面仍然以commonuser.jsp為例介紹如何實(shí)現(xiàn)驗(yàn)證代碼的共享。

使用專(zhuān)門(mén)的文件存放共享代碼:

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>

在需要驗(yàn)證的文件中導(dǎo)入這個(gè)專(zhuān)門(mén)的文件。以commonuser.jsp為例:

commonuser.jsp代碼:

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

普通用戶(hù)界面

使用include指令包含目標(biāo)文件,在把JSP轉(zhuǎn)換成Java文件的時(shí)候,會(huì)把目標(biāo)文件的代碼拷貝到當(dāng)前文件。
再運(yùn)行測(cè)試,結(jié)果是相同的。

4、使用過(guò)濾器對(duì)權(quán)限進(jìn)行驗(yàn)證

把具有相同權(quán)限要求的文件放在相同的文件夾下,對(duì)文件夾的訪問(wèn)進(jìn)行統(tǒng)一的過(guò)濾。

編寫(xiě)用于過(guò)濾的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);
    // 得到用戶(hù)類(lèi)型
    String usertype = (String)session.getAttribute("usertype");
    // 進(jìn)行判斷
    if(usertype==null || usertype.equals("1")){
        ((HttpServletResponse)arg1).sendRedirect("./../login.jsp");
    }
    // 繼續(xù)調(diào)用其他的過(guò)濾器
    try{
        arg2.doFilter(arg0, arg1);
    }catch(Exception e){}
}
public void init(FilterConfig arg0) throws ServletException {
    // TODO Auto-generated method stub
}
}

配置過(guò)濾器,過(guò)濾器的配置與Servlet的配置非常類(lèi)似,在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/*,這樣只要訪問(wèn)commonuser這個(gè)文件夾,就會(huì)訪問(wèn)這個(gè)過(guò)濾器,如果用戶(hù)沒(méi)有登錄,將不能訪問(wèn)目標(biāo)文件。

測(cè)試:為了測(cè)試需要?jiǎng)?chuàng)建一個(gè)文件夾commonuser,把commonuser.jsp拷貝到commonuser文件中。

測(cè)試過(guò)程如下:

先直接訪問(wèn):http://127.0.0.1:8080/ch11/commonuser/commonuser.jsp,你會(huì)發(fā)現(xiàn)顯示的是登錄界面,就是因?yàn)闆](méi)有登錄而訪問(wèn)了commonuser中的文件,過(guò)濾器進(jìn)行處理,然后跳轉(zhuǎn)到登錄界面了。

然后在登錄界面輸入正確的用戶(hù)名和口令,然后再次在地址欄中輸入上面的地址,這時(shí)候會(huì)看到commonuser.jsp文件的內(nèi)容。表示驗(yàn)證通過(guò)。

5、對(duì)文件局部?jī)?nèi)容的安全進(jìn)行控制

前面介紹的都是文件級(jí)別的安全控制,有時(shí)候需要對(duì)文件中部分內(nèi)容進(jìn)行安全控制,例如物品信息列表這樣的界面,如果當(dāng)前用戶(hù)是管理員,則可以在其中完成管理功能,而對(duì)于普通用戶(hù)來(lái)說(shuō),而不可以,這就需要進(jìn)行局部的控制。局部控制主要是通過(guò)標(biāo)準(zhǔn)標(biāo)簽庫(kù)中的c:if>標(biāo)簽來(lái)完成。

6、安全驗(yàn)證碼的基本實(shí)現(xiàn)方式

為了增強(qiáng)網(wǎng)站的安全性,很多網(wǎng)站采用了很多安全措施。例如SSL方式的訪問(wèn)、U盾和口令卡(工商銀行)、信息加密等。安全驗(yàn)證碼是現(xiàn)在比較流行的有效的一個(gè)安全措施,能夠有效的解決用戶(hù)通過(guò)遍歷所有可能的組合來(lái)破解密碼的問(wèn)題。
基本工作原理如下:每次客戶(hù)端訪問(wèn)服務(wù)器的時(shí)候,服務(wù)器會(huì)生成驗(yàn)證碼,以圖形的形式顯示給用戶(hù),同時(shí)在服務(wù)器上保留備份,用戶(hù)在提交信息的時(shí)候需要把驗(yàn)證碼同時(shí)提交道服務(wù)器,服務(wù)器接收到驗(yàn)證碼之后與服務(wù)器端的驗(yàn)證碼進(jìn)行比較,如果相同則進(jìn)行處理。如果不同,則讓用戶(hù)重新輸入。因?yàn)槊看味甲兓杏脩?hù)如果想破解密碼,首先要應(yīng)付變化的安全驗(yàn)證碼,所以加大了破解的難度。

7、通過(guò)異常處理增強(qiáng)安全性

有時(shí)候用戶(hù)的攻擊是根據(jù)網(wǎng)站所使用的服務(wù)器來(lái)進(jìn)行了,因?yàn)楹芏喾?wù)器都有自己的bug。如果不能對(duì)異常進(jìn)行有效的處理,錯(cuò)誤信息會(huì)顯示在客戶(hù)端,從錯(cuò)誤信息中可以讓客戶(hù)發(fā)現(xiàn)服務(wù)器的版本信息,這樣就為用戶(hù)的惡意攻擊提供了便利條件。

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

而abc.jsp是一個(gè)不存在的文件,這時(shí)候如果不進(jìn)行處理,會(huì)在客戶(hù)端顯示服務(wù)器的信息。

如果能夠?qū)Ω鞣N異常進(jìn)行處理,不讓用戶(hù)看到你所使用技術(shù)和服務(wù)器,這樣客戶(hù)進(jìn)行攻擊的難度就加大了。

曾經(jīng)有一個(gè)學(xué)生作了這樣一件事情:使用JSP技術(shù)完成了一個(gè)網(wǎng)站,然后通過(guò)配置之后,客戶(hù)端訪問(wèn)的時(shí)候,使用的文件后綴名都是php,給人的感覺(jué)就像是采用php技術(shù)編寫(xiě)的網(wǎng)站。

希望本文所述對(duì)大家的JSP程序設(shè)計(jì)有所幫助。

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

標(biāo)簽:丹東 紅河 云浮 江西 貴州 青島 宿州 西藏

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《JSP學(xué)習(xí)之Java Web中的安全控制實(shí)例詳解》,本文關(guān)鍵詞  JSP,學(xué),習(xí)之,Java,Web,中的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《JSP學(xué)習(xí)之Java Web中的安全控制實(shí)例詳解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于JSP學(xué)習(xí)之Java Web中的安全控制實(shí)例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    全部av―极品视觉盛宴亚洲| 韩国三级电影一区二区| 91精品国产综合久久久久久久| 亚洲乱码日产精品bd| 亚洲午夜久久久久久久久电影网 | 欧美一区三区二区| 波多野洁衣一区| 韩国成人在线视频| 亚洲欧洲一区二区在线播放| 久久综合久久99| 日韩视频在线观看一区二区| 欧美日韩在线三区| 在线观看视频一区| 九色综合狠狠综合久久| 午夜婷婷国产麻豆精品| 亚洲一二三专区| 亚洲综合在线第一页| 中文字幕日本乱码精品影院| 国产午夜一区二区三区| 久久夜色精品国产欧美乱极品| 欧美久久一二区| 欧美日韩亚洲综合在线| 色婷婷av一区| 欧美日韩极品在线观看一区| 色综合av在线| 欧美性做爰猛烈叫床潮| 色拍拍在线精品视频8848| 日本久久一区二区| 欧洲精品视频在线观看| 欧美日韩在线不卡| 91热门视频在线观看| 欧美综合色免费| 精品粉嫩aⅴ一区二区三区四区| 午夜在线成人av| 亚洲三级在线免费| 一区二区三区在线观看国产| 欧美久久一二三四区| 精品久久久久香蕉网| 亚洲午夜久久久久中文字幕久| 毛片一区二区三区| 欧美性大战久久久久久久蜜臀 | 欧美日韩一区视频| 欧美国产成人在线| 韩国精品主播一区二区在线观看| 91精品国产综合久久精品麻豆| 亚洲视频免费看| 国产精品一二三四五| 一区二区三区欧美亚洲| 国产成人99久久亚洲综合精品| 日韩一二三四区| 日本怡春院一区二区| 91精品福利视频| 日韩一级欧美一级| 欧美不卡视频一区| 欧美精品一区二| 亚洲欧美一区二区三区久本道91 | 国产欧美日韩视频在线观看| 欧美国产一区在线| 国产三级欧美三级| 亚洲激情自拍偷拍| 国产一区二区三区久久悠悠色av| 五月婷婷综合激情| voyeur盗摄精品| 色老头久久综合| 日韩欧美国产综合在线一区二区三区 | 国产精品嫩草99a| 亚洲欧美一区二区三区孕妇| 麻豆久久久久久| 99re热这里只有精品视频| 6080午夜不卡| 亚洲欧美在线视频观看| 国产裸体歌舞团一区二区| 欧美三级日韩在线| 亚洲欧美在线高清| 亚洲一区二区三区在线| 国产·精品毛片| 欧美一区2区视频在线观看| 色婷婷综合久色| 日韩欧美中文一区| 91国产免费看| 国产精品国产三级国产三级人妇 | 亚洲精品一区二区精华| 久久精品视频网| 韩国午夜理伦三级不卡影院| 天堂成人国产精品一区| 久久亚洲捆绑美女| 99久久er热在这里只有精品66| 99热在这里有精品免费| 国内成人自拍视频| 欧美日韩国产综合久久| 亚洲免费观看高清| 不卡一区在线观看| 亚洲精品一区二区三区99 | 国产精品一区二区在线播放| 欧美麻豆精品久久久久久| 亚洲欧美区自拍先锋| 波多野结衣在线aⅴ中文字幕不卡| 欧美三级三级三级爽爽爽| 精品国产一区二区三区忘忧草| 五月天久久比比资源色| 在线精品国精品国产尤物884a| 亚洲三级视频在线观看| www.亚洲免费av| 国产精品久久午夜夜伦鲁鲁| 成人性生交大合| 中文字幕 久热精品 视频在线 | 欧美精品丝袜中出| 欧美r级在线观看| 亚洲国产日韩一区二区| 欧美无砖专区一中文字| 午夜精品久久久久久久99樱桃| 欧美中文字幕亚洲一区二区va在线| 亚洲日本韩国一区| 一本一本大道香蕉久在线精品| 欧美激情一区二区三区全黄| 国产成人精品免费| 7777女厕盗摄久久久| 美国欧美日韩国产在线播放| 成人av电影观看| 国产精品理论片| 欧美做爰猛烈大尺度电影无法无天| 亚洲另类在线视频| 色综合久久综合网97色综合| 午夜精品久久久久久久99樱桃| 日韩欧美一区二区三区在线| 国产91丝袜在线播放九色| 亚洲欧美一区二区三区久本道91 | 成人激情动漫在线观看| 国产精品欧美久久久久无广告| 91福利在线免费观看| 日本91福利区| 中文字幕精品一区| 欧洲精品一区二区| 福利视频网站一区二区三区| 亚洲综合视频网| 91高清视频免费看| 日韩成人免费电影| 国产欧美一区二区三区鸳鸯浴| 欧美在线观看视频一区二区三区| 日韩不卡手机在线v区| 国产精品卡一卡二| 欧美大片顶级少妇| 国产在线一区二区| 蜜臀av性久久久久蜜臀aⅴ| 中文字幕视频一区| 欧美大度的电影原声| 色婷婷综合激情| 国产一区在线精品| 亚洲夂夂婷婷色拍ww47| wwwwww.欧美系列| 欧美三级电影一区| 岛国精品一区二区| 亚洲午夜精品一区二区三区他趣| 国产精品日韩成人| 日韩精品中文字幕一区 | 欧美高清在线精品一区| 91麻豆精品国产91久久久使用方法 | 美女在线观看视频一区二区| 亚洲精品免费一二三区| 亚洲国产电影在线观看| 欧美电影免费观看高清完整版在| 欧洲视频一区二区| www.亚洲人| 久久成人久久爱| 亚洲精品精品亚洲| 91精品国产欧美一区二区| 处破女av一区二区| 国产精品自拍三区| 精品一区二区在线观看| 日韩精品成人一区二区在线| 一区二区欧美视频| 亚洲精品中文在线| 亚洲柠檬福利资源导航| 久久九九99视频| 色婷婷综合久久久中文一区二区| 在线国产亚洲欧美| 91福利视频在线| 欧美日韩第一区日日骚| 9191成人精品久久| 欧美丰满高潮xxxx喷水动漫 | 欧美一区二区免费观在线| 国产精品一级片| 日韩高清不卡一区| 麻豆成人久久精品二区三区红| 青青草97国产精品免费观看无弹窗版| 亚洲va天堂va国产va久| 天天操天天干天天综合网| 亚洲大片精品永久免费| 亚洲一区二区在线免费观看视频| 日韩黄色小视频| 国产一区二区h| 懂色av一区二区在线播放| 成人18视频在线播放| 欧洲日韩一区二区三区| 91麻豆精品国产91久久久久久久久 | 福利一区二区在线观看| 秋霞电影一区二区| 日韩经典中文字幕一区| 精品视频在线视频| 在线91免费看|