久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

Javaweb期末試卷總結(jié)版2

時(shí)間:2019-05-15 09:30:59下載本文作者:會(huì)員上傳
簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《Javaweb期末試卷總結(jié)版2》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《Javaweb期末試卷總結(jié)版2》。

第一篇:Javaweb期末試卷總結(jié)版2

Java Web試題 JAVA WEB部分: 1.基于HTTP協(xié)議的Servlet通常繼承__C______, 也可以繼承__B______。這些類型都實(shí)現(xiàn)了接口___A_____。

A.javax.servlet.Servlet

B.javax.servlet.GenericServlet C.javax.servlet.http.HttpServlet 2.我們實(shí)現(xiàn)的基于HTTP協(xié)議的Servlet的服務(wù)方法簽名正確的有__

BCD_____________。

A.public void doGet(ServletRequest req, ServletResponse res)throws IOException, ServletException B.public void doPost(HttpServletRequest req, HttpServletResponse res)throws IOException, ServletException C.public void service(HttpServletRequest req, HttpServletResponse res)throws IOException, ServletException D.public void service(ServletRequest req, ServletResponse res)throws IOException, ServletException

重寫(xiě)服務(wù)方法,一般是以下兩種方式: doGet(HttpServletRequest req,HttpServletResponse res)doPost(HttpServletRequest req,HttpServletResqonse res)

HttpServlet繼承自GenericServlet,其中的service方法自動(dòng)實(shí)現(xiàn); GenericServlet的調(diào)用方法: 容器

-->service(ServletRequest req,ServletResponse res)-->service(HttpServletRequest req,HttpServletResponse res)-->METHOD=“GET”-->doGet(HttpServletRequest req,HttpServletResponse res)-->METHOD=“POST”-->doPost(HttpServletRequest req,HttpServletResponse res)

API中有D這個(gè)方法

3.在Servlet中要輸出內(nèi)容,使用HttpServletResponse的方法_setContentType 設(shè)置內(nèi)容,對(duì)于文本類型調(diào)用方法__ getWriter _獲得一個(gè)___ PrintWriter ___的輸出流,對(duì)于二進(jìn)制類型調(diào)用_ getOutputStream 獲得_ ServeltOutputStream _的輸出流。調(diào)用HttpServletRequest的方法_ getParameter 解析有名參數(shù),調(diào)用_ getInputStream 獲得一個(gè)_ ServletInputStream _的輸入流。在Servlet中也可以調(diào)用_ ServletContext 和_ HttpServletRequest _的方法_ getRequestDispatcher __獲得__ RequestDispatcher __, 將請(qǐng)求的處理權(quán)交給一個(gè)新的資源。A.ServletInputStream

B.ServletContext

C.HttpServletRequest D.setContentType

E.getInputStream

F.getOutputStream G.getRequestDispatcher H.RequestDispatcher

I.getParameter J.ServeltOutputStream K.getWriter

L.PrintWriter

4.控制一個(gè)Servlet的生命周期的方法有__C______, _____B___和____A____。其中 ___C_____在所有的請(qǐng)求到來(lái)之前調(diào)用,____A____在撤消應(yīng)用或關(guān)閉web container時(shí)調(diào)用。Servlet通常只有一個(gè)實(shí)例,被所有的訪問(wèn)者共享,因此要注意資源的同步。A.destroy

B.service

C.init 5.以下是部署在主機(jī)”%> C.

D.

E.<% int i = 10;%>

F.<%!int i = 10;%> G.< %@taglib uri=”http://java.sun.com/jstl/core” prefix=”c”%> H.<%=new java.util.Date()%> I. J.<% response.sendRedirect(“http://www.tmdps.cn”);%> K.<%@page contentType=”text/html;charset=gb2312”%>

11.在directive page中,__B______屬性可反復(fù)出現(xiàn),___AC_____屬性的卻省值為true, ____E____屬性的值指向處理異常的頁(yè)面,______D__表示激活EL。A.autoFlush

B.import

C.session D.isELIgnored=false

E.errorPage

jsp的page指令(directive)

jsp的page指令(directive)影響著由JSP頁(yè)面生成的Servlet的整體結(jié)構(gòu)!page指令的功能包括(1)類的導(dǎo)入(2)Servlet父類的制定(3)內(nèi)容類型的設(shè)置(4)頁(yè)面會(huì)話的設(shè)置(5)頁(yè)面緩沖的設(shè)置

(6)錯(cuò)誤頁(yè)面的設(shè)置(7)控制線程行為

page屬性(attribute)值的兩邊的雙引號(hào)也可以用單引號(hào)代替,單引號(hào)不能省略,若屬性值本身含有引號(hào),則在它們之前加上反斜杠來(lái)轉(zhuǎn)義。

page 的幾個(gè)重要的指令:1.import 唯一的一個(gè)允許多次出現(xiàn)的attirbute.默認(rèn)情況下有以下幾個(gè)是自動(dòng)導(dǎo)入的包,java.lang.*;java.servelt.*;javax.servlet.jsp.*;javax.servlet.http.*!2.pageEncoding用來(lái)單獨(dú)設(shè)置頁(yè)面的字符集。%@page pageEncoding=“GB2312”% 3.contentType設(shè)置響應(yīng)報(bào)頭標(biāo)明發(fā)送到客戶端的MIME類型和頁(yè)面字符集!<%@ page contentType=“text/html;charset=gb2312”%> 4.session 屬性控制頁(yè)面的會(huì)話特性!%@page session=“true|false”%

默認(rèn)值為true.5.buffer 和 autoFlush 屬性

buffer 設(shè)置緩沖區(qū)的大小 <%@ page buffer=“sizekb|none”%>

autoFlush 當(dāng)緩沖區(qū)滿后自動(dòng)清空!%@page autoFlush=“true|false”% 默認(rèn)值為true,為false時(shí)會(huì)拋出一個(gè)異常。

6.errorPage 和isErrorPage(attribute)<%@page errorPage=“RelativeURL ”%>指定一個(gè)頁(yè)面處理當(dāng)前頁(yè)面拋出但未捕獲的異常對(duì)象。

%@page isErrorPage=“true|false”% 表明當(dāng)前頁(yè)面是否可以作為其他jsp頁(yè)面的錯(cuò)誤頁(yè)面。可以將此頁(yè)面放在WEB-INF目錄中,有助于提高程序的安全性。

1、<%@ page buffer=“25kb” autoFlush=“true” %>

2、buffer=“none | 8kb | sizekb” buffer的大小被out對(duì)象用于處理執(zhí)行后的JSP對(duì)客戶瀏覽器的輸出。缺省值是8kb

3、autoFlush=“true | false” 設(shè)置如果buffer溢出,是否需要強(qiáng)制輸出,如果其值被定義為true(缺省值),輸出正常,如果它被設(shè)置為false,如果這個(gè)buffer溢出,就會(huì)導(dǎo)致一個(gè)意外錯(cuò)誤的發(fā)生.如果你把buffer設(shè)置為none,那么你就不能把a(bǔ)utoFlush設(shè)置為false.12.有一個(gè)JavaBean com.briup.Student, 在JSP中用action在session作用域里創(chuàng)建一個(gè)對(duì)象hellen的語(yǔ)句是_______。

什么是JavaBean?(參見(jiàn)文檔)

13.以下_ABCD_______是JSP中正確的注釋:

A.<%--comments--%> 真正的注釋

B.<% //comments %> C. 會(huì)寫(xiě)在頁(yè)面當(dāng)中

D.<%!/* comments */ %> JAVA中的單行和多行注釋

14.以下__AB______是錯(cuò)誤的:

A.<%!int i = 10;int j = 10;i += j;%> B.<% int getHash(String str){ return str.hashCode();} %> 聲明腳本 C.<%!class A { void print(){System.out.println(“in A”);}} %> 15.在JSP中有很多隱含變量,request的類型是C_javax.servlet.http.HttpServletRequest______, response的類型是_I__javax.servlet.http.HttpServletResponse__, page的類型是__E__javax.servelet.jsp.JspPage_,pageContext的類型是__B__javax.servlet.jsp.PageContext____, session的類型是_D__javax.servlet.http.HttpSession_____, application的類型是____G__ javax.servlet.ServletContext__, config的類型是__F_javax.servlet.ServletConfig_, out的類型是_H__ javax.servlet.jsp.JspWriter_____, exception的類型是___A__java.lang.Throwable___。A.java.lang.Throwable

B.javax.servlet.jsp.PageContext C.javax.servlet.http.HttpServletRequest

D.javax.servlet.http.HttpSession E.javax.servelet.jsp.JspPage

F.javax.servlet.ServletConfig G.javax.servlet.ServletContext H.javax.servlet.jsp.JspWriter I.javax.servlet.http.HttpServletResponse

參見(jiàn)PDF97頁(yè)

16.JSP在處理客戶請(qǐng)求前會(huì)被編譯成servlet, JSP中declaration中定義的變量和方法在運(yùn)行時(shí)成為對(duì)應(yīng)servlet的___B_____變量和方法;scripting會(huì)成為服務(wù)方法____C____的語(yǔ)句。JSP的生命周期受到____A____,___C_____和___D_____的控制。A.jspInit

B.member

C._jspService

D.jspDestroy

調(diào)出一個(gè)編譯后的JSP文件給學(xué)生看

D:JAVATomcat-5.5.25workCatalinalocalhostRunCommunityorgapachejsppages

17.在web應(yīng)用webdev的WEB-INF的目錄下有一個(gè)標(biāo)簽庫(kù)描述文件sample.tld, 其內(nèi)容部分如下:

hello

com.tarena.tags.HelloTag

empty

user

true

false

java.lang.String

在hello.jsp中要使用標(biāo)簽hello, 因此必須先引入該標(biāo)簽庫(kù),語(yǔ)句是__<%@taglib uri=”/WEB-INF/sample.tld” prefix=”s”%>_____。要用hello標(biāo)簽在頁(yè)面上給”world“打招呼的語(yǔ)句是________________。

18.在web應(yīng)用webdev的WEB-INF/tags目錄下放置了一些標(biāo)簽文件,用前綴”me”引入這些標(biāo)簽到一個(gè)jsp的 directive taglib的表達(dá)式是___<%@taglib tagdir=”/WEB-INF/tags” prefix=”me”%>__。

19.一個(gè)沒(méi)有body的標(biāo)簽其tag handler要實(shí)現(xiàn)接口__C______;如果某個(gè)標(biāo)簽有body, 但標(biāo)簽不與body交互,tag handler要實(shí)現(xiàn)接口___E_____, 如果要與body交互,tag handler要實(shí)現(xiàn)接口____D____。通常前兩種情況的tag handler會(huì)繼承___A_____, 最后一種情況tag handler會(huì)繼承_____B___。

A.javax.servlet.jsp.tagext.TagSupport B.javax.servlet.jsp.tagext.BodyTagSupport C.javax.servlet.jsp.tagext.Tag D.javax.servlet.jsp.tagext.BodyTag E.javax.servlet.jsp.tagext.IterationTag 20.在EL中以下____B____可以獲得requestURI:

A.${requestScope.request.requestURI} B.${pageContext.request.requestURI} C.${requestScope.requestURI} 21.EL中可使用一些隱含對(duì)象,通過(guò)____C____可以訪問(wèn)request中的屬性(attriubte), 通過(guò)___A_____可以訪問(wèn)session中的屬性, 通過(guò)___B_____可以訪問(wèn)application中的屬性, 通過(guò)___D_____可以訪問(wèn)瀏覽器輸入的參數(shù),通過(guò)____G____可以訪問(wèn)請(qǐng)求頭中的參數(shù),通過(guò)____E____可以訪問(wèn)web應(yīng)用的參數(shù),通過(guò)____F____可以訪問(wèn)cookie。A.sessionScope

B.applicationScope

C.requestScope D.param

E.initParam

F.cookie G.header 22.在EL中能夠訪問(wèn)的函數(shù)(function)必須是_____A___。

A.public static

B.protected

C.protected static D.public static void

F.protected static void 23.在EL中訪問(wèn)JavaBean Student的對(duì)象smallTank的屬性name正確的是__ABC______。A.${smallTank.name}

B.${smallTank[?name?]} C.${smallTank[“name”]}

D.${smallTank(?name?)}

SESSION AAA=”aa”

APPLICATION(aa=”hhhh”)

applicationScope['aa'] 此種情況只能用方括號(hào)

24.Struts提供MVC的一個(gè)實(shí)現(xiàn),是Java Web應(yīng)用的一個(gè)框架(Framework).它主要采用了____D____模式。瀏覽器請(qǐng)求被控制器servlet ___A_____截取,控制器將瀏覽器表單的輸入封裝到____F____類型的JavaBean對(duì)象中,如果應(yīng)用需要作合法性檢測(cè),該類型的____G____方法會(huì)被調(diào)用,該方法的返回類型是_____B___。如果合法性檢測(cè)正確,控制器會(huì)將調(diào)用類型為_(kāi)___H____對(duì)象的方法__E______處理請(qǐng)求,該方法返回類型為_(kāi)___C____。A.org.apache.struts.action.ActionServlet

B.org.apache.struts.action.ActionErrors C.org.apache.struts.action.ActionForward

D.command

E.execute F.org.apache.struts.action.ActionForm G.validate H.org.apache.struts.action.Action 25.使用Tomcat,我們通常會(huì)設(shè)置環(huán)境變量_C_ CATALINA_HOME_指向安裝目錄;web應(yīng)用的卻省部署目錄在安裝目錄下的___A__webapps___子目錄;如果有多個(gè)web應(yīng)用共享的包如數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,我們應(yīng)該將其放置在安裝目錄的__D__common/lib__子目錄;Tomcat的主要配置文件是安裝目錄下__B_conf _子目錄下的___F__server.xml___;Tomcat 5的應(yīng)用相關(guān)的配置文件放在安裝目錄下___E__conf/Catalina/___子目錄。A.webapps

B.conf

C.CATALINA_HOME D.common/lib

E.conf/Catalina/ F.server.xml

第二篇:javaWeb總結(jié)+小結(jié)

JavaWeb B/S與C/S的區(qū)別

1,從安裝上來(lái)講,B/S只需要在服務(wù)器端安裝即可,而C/S卻需要每一個(gè)客戶端進(jìn)行安裝。2,從部署上來(lái)說(shuō),B/S只需要服務(wù)器能夠支持即可,而C/S卻對(duì)每一個(gè)客戶端的電腦提出了要求。

3,從升級(jí),維護(hù)角度來(lái)說(shuō),B/S只需要在服務(wù)器端升級(jí)維護(hù)即可,像網(wǎng)易的郵箱,而C/S卻是服務(wù)器更新維護(hù)一次,客戶端就要下載相關(guān)的補(bǔ)丁才能使用 4,從安全性來(lái)講,B/S是基于服務(wù)器的,較之C/S安全性好

5,從本質(zhì)上來(lái)說(shuō),B/S是基于請(qǐng)求驅(qū)動(dòng)的,即客戶端發(fā)送一個(gè)Http請(qǐng)求,然后服務(wù)器進(jìn)行處理之后,響應(yīng)給客戶端,而C/S卻是基于事件驅(qū)動(dòng)的,像騰訊的QQ。

6,從耦合度來(lái)講,B/S與服務(wù)器端耦合,而C/S卻是與客戶端的操作系統(tǒng)進(jìn)行耦合。但是Client/Server(從游戲的角度來(lái)講)較之Brows/Server具有優(yōu)質(zhì)的畫(huà)面。

Servlet的使用步驟:

1,創(chuàng)建一個(gè)JAVA類,存放在com.fit.servlet包中,并且此類extends HttpServlet類,才能成為一個(gè)Servlet 2,覆寫(xiě)doGet()和doPost()方法

3,最后,在web.xml文件中進(jìn)行Servlet配置。具體的配置如下:

Servlet類名

完整的包.類名稱

Servlet類名

網(wǎng)頁(yè)訪問(wèn)的名稱,例如/hello Servlet的生命周期,作用,并說(shuō)出和CGI(Common Gateway Interface)的區(qū)別

就是指Servlet從創(chuàng)建出實(shí)例對(duì)象到銷毀的過(guò)程。它是一個(gè)容器,負(fù)責(zé)創(chuàng)建實(shí)例來(lái)接受客戶端的請(qǐng)求,并且以多線程的方式響應(yīng)給客戶。具體過(guò)程如下:

Servlet被服務(wù)器實(shí)例化之后,容器運(yùn)行其init方法進(jìn)行初始化,請(qǐng)求到達(dá)時(shí)運(yùn)行其service方法,在此過(guò)程中僅創(chuàng)建一個(gè)對(duì)象,然后service方法自動(dòng)調(diào)用與請(qǐng)求相應(yīng)的doXxx方法,當(dāng)服務(wù)器決定將實(shí)例進(jìn)行銷毀時(shí),再調(diào)用其destroy方法。

與CGI(通用網(wǎng)關(guān)接口)的區(qū)別在于,Servlet處于服務(wù)器進(jìn)程中,它通過(guò)多線程的方式運(yùn)行其service方法,一個(gè)實(shí)例可以服務(wù)于多個(gè)請(qǐng)求,并且其實(shí)例一般不會(huì)銷毀,而CGI對(duì)每一個(gè)請(qǐng)求都產(chǎn)生新的進(jìn)程,服務(wù)完成后就銷毀,所以效率低于Servlet 作用:可以用來(lái)進(jìn)行接收客戶端的請(qǐng)求,也可以進(jìn)行請(qǐng)求流的控制。

Http協(xié)議:(了解)

首先它是(Hypertext Transfer Protocol)超文本傳輸協(xié)議。

HTTP報(bào)文由從客戶機(jī)到服務(wù)器的請(qǐng)求和從服務(wù)器到客戶機(jī)的響應(yīng)構(gòu)成。請(qǐng)求報(bào)文格式如下:

請(qǐng)求行 - 通用信息頭 - 請(qǐng)求頭 - 實(shí)體頭 - 報(bào)文主體

請(qǐng)求行以方法字段開(kāi)始,后面分別是 URL 字段和 HTTP 協(xié)議版本字段,并以 CRLF 結(jié)尾。

應(yīng)答報(bào)文格式如下:

狀態(tài)行 - 通用信息頭 - 響應(yīng)頭 - 實(shí)體頭 - 報(bào)文主體

狀態(tài)碼元由3位數(shù)字組成,表示請(qǐng)求是否被理解或被滿足。原因分析是對(duì)原文的狀態(tài)碼作簡(jiǎn)短的描述,狀態(tài)碼用來(lái)支持自動(dòng)操作,而原因分析用來(lái)供用戶使用。客戶機(jī)無(wú)需用來(lái)檢查或顯示語(yǔ)法。工作流程:

一次HTTP操作稱為一個(gè)事務(wù),其工作過(guò)程可分為四步:

首先客戶機(jī)與服務(wù)器需要建立連接。只要單擊某個(gè)超級(jí)鏈接,HTTP的工作就開(kāi)始了。

建立連接后,客戶機(jī)發(fā)送一個(gè)請(qǐng)求給服務(wù)器,請(qǐng)求方式的格式為:統(tǒng)一資源標(biāo)識(shí)符(URL)、協(xié)議版本號(hào),后邊是MIME信息包括請(qǐng)求修飾符、客戶機(jī)信息和可能的內(nèi)容。

服務(wù)器接到請(qǐng)求后,給予相應(yīng)的響應(yīng)信息,其格式為一個(gè)狀態(tài)行,包括信息的協(xié)議版本號(hào)、一個(gè)成功或錯(cuò)誤的代碼,后邊是MIME信息包括服務(wù)器信息、實(shí)體信息和可能的內(nèi)容。

客戶端接收服務(wù)器所返回的信息通過(guò)瀏覽器顯示在用戶的顯示屏上,然后客 戶機(jī)與服務(wù)器斷開(kāi)連接。

Javascript的作用:

1,進(jìn)行驗(yàn)證(通過(guò)正則表達(dá)式,在css+HTML的部分特性進(jìn)行瀏覽器端的格式驗(yàn)證工作)

2,進(jìn)行交互(將客戶端的一個(gè)請(qǐng)求通過(guò)JavaScript可以發(fā)送到服務(wù)器端,也可以在瀏覽器端進(jìn)行人機(jī)的交互,突破了以前靜態(tài)頁(yè)面的交互性限制)3,進(jìn)行特效的處理,如走馬燈,時(shí)間時(shí)鐘。

Servlet生命周期:(詳細(xì))是指Servlet實(shí)例從被創(chuàng)建到其消失(對(duì)象銷毀,回收)中間的時(shí)間及各個(gè)階段,稱之為Servlet生命周期。

前提:web服務(wù)器加載類。之后執(zhí)行以下過(guò)程:

1,實(shí)例化:Servlet容器創(chuàng)建Servlet實(shí)例,具體就是當(dāng)接收到客戶端的第一次請(qǐng)求時(shí),Servlet容器負(fù)責(zé)創(chuàng)建Servlet的一個(gè)實(shí)例。且在此過(guò)程中僅創(chuàng)建一個(gè)實(shí)例,通過(guò)多線程的方式響應(yīng)客戶端的請(qǐng)求

2,初始化:該容器調(diào)用init()方法。

3,服務(wù):當(dāng)請(qǐng)求到達(dá)時(shí),該Servlet容器自動(dòng)調(diào)用server()方法,根據(jù)客戶端發(fā)送請(qǐng)求的方式,選擇doXxx()方法執(zhí)行

4,銷毀:當(dāng)web服務(wù)器被卸載的時(shí)候,調(diào)用destroy()方法進(jìn)行對(duì)象的銷毀。請(qǐng)看以下的一段代碼: package com.fit.servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class Test extends HttpServlet { private static final long serialVersionUID = 1L;

public Test(){

super();

System.out.println(“===========================”);

} public void destroy(){

System.out.println(“對(duì)象被銷毀!”);} public void init()throws ServletException {

System.out.println(“對(duì)象初始化!”);} protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

System.out.println(“get方法執(zhí)行”);} protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {

this.doGet(request, response);} protected void service(HttpServletRequest arg0, HttpServletResponse arg1)

throws ServletException, IOException {

System.out.println(“服務(wù)開(kāi)始啟動(dòng)了!”);

super.service(arg0, arg1);}

}運(yùn)行效果如下:

=========================== 對(duì)象初始化!服務(wù)開(kāi)始啟動(dòng)了!

get方法執(zhí)行

2011-7-19 12:07:04 org.apache.catalina.core.StandardContext reload 信息: Reloading this Context has started 對(duì)象被銷毀!

分析原因:

1,實(shí)例化對(duì)象發(fā)生在客戶端請(qǐng)求第一次到達(dá)的時(shí)候,而不是類被加載的時(shí)候。2,對(duì)象只被實(shí)例化一次.3,如果service()被覆寫(xiě)的話,則調(diào)用的時(shí)候加入super.service(arg0, arg1);這句話時(shí)候才可以清楚的調(diào)用的doXxx()方法,如果不加入此句話,那么將不會(huì)執(zhí)行doGet()方法。所以一般不要覆寫(xiě)service()方法。只需要覆寫(xiě)doGet()和doPost()方法。

4,當(dāng)web服務(wù)器被卸載的時(shí)候,將執(zhí)行destroy()方法。進(jìn)行對(duì)象的銷毀!

Jsp頁(yè)面構(gòu)成元素,Jsp跟Html的區(qū)別,優(yōu)勢(shì)

Jsp定義:(Java Server Page)Java服務(wù)器端語(yǔ)言,組成如下: 1,靜態(tài)模板:由HTML,css,JavaScript等元素構(gòu)成。

2,指令:設(shè)定網(wǎng)頁(yè)元素的屬性,用于提供這個(gè)歌JSP網(wǎng)頁(yè)的相關(guān)信息。

3,腳本元素--聲明:<%!...%>,在此之中可以進(jìn)行變量,常量的定義,類,方法都可以聲明,但是一般不用。

4,腳本元素--Java腳本:<%...%>,在此期間可以進(jìn)行Java代碼的拼寫(xiě)。5,腳本元素--表達(dá)式:<%=..%>,用于表達(dá)式輸出時(shí)使用。

6,動(dòng)作:利用JSP動(dòng)作可以重用JavaBean組件,可以動(dòng)態(tài)的包含頁(yè)面,也可以進(jìn)行服務(wù)器端的跳轉(zhuǎn)(即將用戶的請(qǐng)求轉(zhuǎn)發(fā)給其他的頁(yè)面)。7,注釋:

--HTML注釋:,此種注釋可以在頁(yè)面中看到,成為客戶端注釋。--Jsp注釋:<%----%>,此種注釋在頁(yè)面中看不到,也成為服務(wù)器端注釋。--Java注釋:

?單行注釋:// ?多行注釋:/*???*/ Jsp優(yōu)點(diǎn):使用HTML,CSS等技術(shù)構(gòu)建頁(yè)面的模板部分,用Java語(yǔ)言根據(jù)用戶的輸入動(dòng)態(tài)生成可變的內(nèi)容部分。既可以實(shí)現(xiàn)HTML控制頁(yè)面布局,也亦可以實(shí)現(xiàn)Servlet的功能,實(shí)現(xiàn)了內(nèi)容與表示分離。Jsp的常見(jiàn)指令,并說(shuō)出靜態(tài)包含和動(dòng)態(tài)包含的區(qū)別

Page指令:<%@ page language=”java” import=” 完整的包.類名稱” autoFlush=”true[false]” errorPage=”文件名” isErrorPage=”false[true]” isThreadSafe(設(shè)置是否能多線程使用)contentType=”text/html;charset=ISO-8859-1” %> 包含指令:<%@ include file=”文件名”%> taglib指令:此指令用于在Jsp頁(yè)面中引入用戶自定義的標(biāo)簽庫(kù)。例如: <@% taglib url=http://java.sun.com/jsp/jstl/core prefix=”c”%> 靜態(tài)包含跟動(dòng)態(tài)包含的區(qū)別:

<%@ include file=”文件名%>,此包含屬于靜態(tài)包含,是指先將文件包含進(jìn)來(lái)然后在進(jìn)行編譯,編譯后生成的class文件中,被包含的文件在靜態(tài)塊中。且此種包含不允許帶參數(shù)。

此種包含屬于動(dòng)態(tài)包含,先解釋再包含進(jìn)來(lái)結(jié)果,即只有在客戶端進(jìn)行請(qǐng)求時(shí)才會(huì)被動(dòng)態(tài)的編譯載入,在生成的class類中,它被請(qǐng)求一次就被創(chuàng)建一次。且此種被包含頁(yè)面可以取得包含它的頁(yè)面的參數(shù)。

Jsp常見(jiàn)的動(dòng)作,?調(diào)用JavaBean相關(guān):

?,調(diào)用此動(dòng)作,可以用于實(shí)例化JavaBean,或者定位一個(gè)已經(jīng)存在的JavaBean的實(shí)例,并把實(shí)例的引用賦給一個(gè)變量。

?,通過(guò)這個(gè)動(dòng)作可以取得JavaBean對(duì)象的屬性

?或者通過(guò)此動(dòng)作,可以用來(lái)設(shè)置JavaBean的簡(jiǎn)單屬性和索引屬性,此動(dòng)作的name屬性必須與總的id屬性相匹配。當(dāng)JavaBean的屬性名與請(qǐng)求參數(shù)名相同的情況下,可以使用property=“*”的方式為多個(gè)JavaBean的屬性同時(shí)賦值,如: ?jsp頁(yè)面通信:

?:此動(dòng)作用來(lái)在當(dāng)前Jsp包含動(dòng)態(tài)和靜態(tài)文件的輸出結(jié)果,可以和配合使用,向嵌入的Jsp頁(yè)面?zhèn)鬟f參數(shù)

?:此動(dòng)作用來(lái)從當(dāng)前Jsp頁(yè)面轉(zhuǎn)向其他頁(yè)面,并傳遞Request對(duì)象,response對(duì)象,該標(biāo)簽后面的代碼將不會(huì)被執(zhí)行。Jsp的內(nèi)置對(duì)象,四種作用域的通信對(duì)象的范圍

?輸入/輸出對(duì)象

?request:表示客戶端對(duì)網(wǎng)頁(yè)的請(qǐng)求

?response:用于處理Jsp生成的響應(yīng),使用Http協(xié)議將響應(yīng)發(fā)送給客戶端。

?out:表示從response中取得的輸出流。常用的方法有write(),print(),println()等,用于在頁(yè)面中輸出文本形式的響應(yīng)內(nèi)容 ?作用域通信對(duì)象

?pageContext:此通信對(duì)象的作用域僅在當(dāng)前頁(yè)面有效,一旦跳轉(zhuǎn)則不可用

?request:此通信對(duì)象的作用域針對(duì)的同一個(gè)客戶的請(qǐng)求,如果不是同一個(gè)請(qǐng)求則不可以使用

?session:此通信對(duì)象的作用域適用于一次會(huì)話,即打開(kāi)的同一個(gè)瀏覽器的所有頁(yè)面都可以適用

?application:此通信對(duì)象的作用域適用于基于WEB服務(wù)器的所有會(huì)話,適用于監(jiān)聽(tīng)器 ?Servlet對(duì)象

?page:指向當(dāng)前Jsp頁(yè)面經(jīng)過(guò)轉(zhuǎn)譯(jsp?.java文件),編譯(.java文件?.class文件)后的對(duì)象本身,即編譯后的Servlet對(duì)象本身

?config:是在一個(gè)Servlet初始化時(shí),服務(wù)器向它傳遞的初始化信息。初始化信息可以在web.xml中找到。?錯(cuò)誤對(duì)象

?execption:表示Jsp頁(yè)面運(yùn)行時(shí)拋出的異常對(duì)象,可以在專門(mén)準(zhǔn)備的錯(cuò)誤處理頁(yè)面中訪問(wèn)這個(gè)異常對(duì)象。

Jsp執(zhí)行過(guò)程:

?jsp文件轉(zhuǎn)譯:當(dāng)客戶端請(qǐng)求一個(gè)正確的Jsp文件時(shí),將Jsp—>.java文件(即將Jsp文件翻譯成相應(yīng)的Servlet類的源文件)?編譯:.java文件?.class文件,即將Servlet類的源文件進(jìn)行編譯成為.class的Servlet文件。?調(diào)用Servlet的service()方法響應(yīng)用戶的請(qǐng)求。

描述Jsp和Servlet的區(qū)別,共同點(diǎn),各自的應(yīng)用范圍:

1,從發(fā)展上來(lái)看,Jsp可以避開(kāi)Servlet的輸出頁(yè)面的繁瑣步驟,它集合了HTML和Servlet的優(yōu)點(diǎn)。

2,從本質(zhì)上來(lái)說(shuō),Jsp是Servlet的擴(kuò)展,它是Servlet的簡(jiǎn)易形式。Jsp經(jīng)過(guò)轉(zhuǎn)譯之后就成為了類Servlet。

3,從創(chuàng)建方式上來(lái)說(shuō):Jsp由HTML代碼和JSP標(biāo)簽構(gòu)成,而Servlet則完全是由程序代碼構(gòu)成擅長(zhǎng)于流程控制和事務(wù)處理的類

4,從使用角度來(lái)說(shuō):在MVC中,Jsp擔(dān)任的是VIEW層,側(cè)重于視圖,而Servlet則充當(dāng)?shù)目刂茖樱瑐?cè)重于控制邏輯。請(qǐng)求轉(zhuǎn)發(fā)和重定向

? response.sendRedirect():利用response對(duì)象向客戶端發(fā)回一個(gè)響應(yīng)指示其訪問(wèn)其他URL資源,或者說(shuō)是一個(gè)web組件向另一個(gè)web組件發(fā)送一個(gè)新的請(qǐng)求,屬于重定向,地址欄有變化。且不可以傳遞屬性request參數(shù),當(dāng)所有的代碼執(zhí)行完之后才進(jìn)行重定向。

?request.getRequestDispatcher().forword(req,resp):web組件將一個(gè)請(qǐng)求轉(zhuǎn)發(fā)給另一個(gè)web組件,他們始終是同一個(gè)請(qǐng)求,在此期間可以傳遞request屬性參數(shù),地址欄沒(méi)有變化。且一執(zhí)行到此代碼處,后邊的將不再執(zhí)行

JavaBean的組成:

?類必須是具體的,公共的。?提供無(wú)參數(shù)的構(gòu)造方法

?提供getter()和setter()方法訪問(wèn)它的屬性。版權(quán)所有@楊肖飛yangxf159371@126.com

第三篇:javaweb課程設(shè)計(jì)

課程設(shè)計(jì):基于Java Web的討論區(qū)BBS系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

本系統(tǒng)要求實(shí)現(xiàn)以下主要功能:

(1)登錄:提供用戶登錄系統(tǒng)的功能,需要輸入用戶名和密碼

(2)注冊(cè):提供用戶注冊(cè)的功能,需要輸入用戶名、密碼、密碼確認(rèn)、Email、QQ

(3)修改注冊(cè)信息:提供用戶修改注冊(cè)信息的功能,可以修改密碼、Email、QQ

(4)瀏覽討論區(qū):用戶登錄后就可以瀏覽系統(tǒng)中已存在的討論區(qū),用戶可以查看某討論

區(qū)的詳細(xì)信息,也可以進(jìn)入該討論區(qū)瀏覽已發(fā)表的帖子,以及回帖

(5)創(chuàng)建討論區(qū):用戶可以創(chuàng)建討論區(qū),每個(gè)討論區(qū)包含一個(gè)名稱和順序號(hào),每個(gè)討論

區(qū)的名稱在系統(tǒng)中是唯一的,順序號(hào)表示討論區(qū)在列表中的排序

(6)修改討論區(qū):提供討論區(qū)名稱和順序號(hào)的修改功能

(7)刪除討論區(qū):提供討論區(qū)刪除的功能,方便管理員進(jìn)行討論區(qū)管理

(8)瀏覽帖子:用戶進(jìn)入一個(gè)討論區(qū)后,可以看到帖子列表,包含帖子主題、作者、創(chuàng)

建時(shí)間、回復(fù)次數(shù),點(diǎn)擊一個(gè)帖子,可以查看該帖子的內(nèi)容和回帖

(9)創(chuàng)建帖子:用戶進(jìn)入一個(gè)討論區(qū)后,可以選擇創(chuàng)建一個(gè)新帖子,需要輸入帖子標(biāo)題

和內(nèi)容

(10)修改帖子:提供給管理員使用,修改帖子標(biāo)題和內(nèi)容

(11)刪除帖子:提供給管理員使用,方便管理員進(jìn)行帖子整理

(12)回復(fù)帖子:用戶在瀏覽帖子信息的時(shí)候,可以進(jìn)行回復(fù)

第四篇:javaweb學(xué)習(xí)心得

學(xué)習(xí)心得

在寫(xiě)心得之前總結(jié)下中級(jí)部分學(xué)習(xí)的內(nèi)容,我們的中級(jí)部分主要學(xué)習(xí)了html,css,javacript,xml,dtd/scheam,以及java ee 中的jsp,servlet,過(guò)濾器,監(jiān)聽(tīng)器,JSTL,EL,jQuery,Ajax。

下面就各個(gè)模塊進(jìn)行總結(jié):在學(xué)習(xí)html時(shí),我是對(duì)這個(gè)沒(méi)太在意的,因?yàn)槔锩嫒渴菢?biāo)簽,沒(méi)有需要理解的內(nèi)容,全部是屬于識(shí)記的,所以在學(xué)習(xí)時(shí)相對(duì)輕松,對(duì)于html常用的標(biāo)簽都是非常清楚的form中的十一種類型,常用的有text,password,hidden,submit,button,radio,checkbox,等其他的標(biāo)簽如div,table,span,select都是重要的標(biāo)簽.Css的學(xué)習(xí):雖然說(shuō)在標(biāo)簽中也可以定義樣式,但是這么做看起來(lái)不是那么明智,我在學(xué)CSS時(shí)還是比較努力的,所有的樣式效果都測(cè)試過(guò),并且寫(xiě)了相應(yīng)的案例,只是過(guò)了不到3個(gè)月就忘了一大半,很多時(shí)候都是查文檔才能寫(xiě)出來(lái)的,雖然CSS對(duì)于我們來(lái)說(shuō)不必要非常精通,但是我覺(jué)得掌握的東西越多,以后的工作就越輕松,所以在中級(jí)結(jié)束后也會(huì)去看看前面的筆記和案例。

Javascript:js 我認(rèn)為是最重要的,甚至于超過(guò)servlet,jsp,在上課期間,講的內(nèi)容還是比較少的,就javascript中創(chuàng)建對(duì)象來(lái)說(shuō)吧,應(yīng)該只講過(guò)3中方法,雖然在一般的情況下是用不上的,但是我覺(jué)得還是有必要學(xué)習(xí)的,這樣有助于看懂別人寫(xiě)的框架,在javascript這部分學(xué)習(xí)中講的最多的還是dom操作,不過(guò)我覺(jué)得用dom操作太繁瑣了,寫(xiě)的代碼太多,而且效率看起來(lái)也不高,后面就是講的事件,事件也算是簡(jiǎn)單的,只是對(duì)觸發(fā)的事件進(jìn)行相應(yīng)的響應(yīng)。除了這些就是javascript流程控制,對(duì)象一些基本語(yǔ)法,這些和java類似,所以在上課時(shí)沒(méi)有講得太多。

Xml: Markup Language可擴(kuò)展標(biāo)記語(yǔ)言。它是由SGML(Standard Gerneralized Markup language)發(fā)展而來(lái)的,允許開(kāi)發(fā)者自定標(biāo)簽,可以將標(biāo)簽和內(nèi)容有效的分離。在XML技術(shù)里,可以編寫(xiě)一個(gè)文檔來(lái)約束XML文檔的書(shū)寫(xiě)規(guī)范,稱之為XML約束。本文主要介紹DTD與Schema兩種約束,在這里學(xué)習(xí)了dtd,scheama,定義XML約束,這部分的學(xué)習(xí)是我感覺(jué)最累的一部分,DTD還算好,SCheama里面的內(nèi)容,現(xiàn)在都忘了,沒(méi)有任何記憶,只知道在XML約束中有著兩中方式,還好這些在剛開(kāi)始工作時(shí)是用不上的,因此我也沒(méi)有用很多時(shí)間來(lái)學(xué)習(xí)。

Servlet:我覺(jué)得是比較簡(jiǎn)單的,可能是因?yàn)樗莏ava代碼,容易理解。首先講的是開(kāi)發(fā)環(huán)境的配置,安裝tomcat,了解tomcat下的目錄,以及web工程下的目錄。后來(lái)是講了servlet的訪問(wèn)方式,post和get的區(qū)別,處理中文亂碼是servlet中一個(gè)重要的知識(shí)點(diǎn),幾乎每個(gè)項(xiàng)目都會(huì)遇到這個(gè)問(wèn)題。主要亂碼有g(shù)et,post亂碼,是通過(guò)設(shè)置request或者response的編碼方式來(lái)實(shí)現(xiàn)的。Servlet間的跳轉(zhuǎn)方式有重定向和轉(zhuǎn)發(fā),對(duì)于重定向和轉(zhuǎn)發(fā)的區(qū)別,現(xiàn)在理解的很透徹了,重定向是不能獲取request中參數(shù),是客戶端的兩次請(qǐng)求,而轉(zhuǎn)發(fā)是服務(wù)器內(nèi)部跳轉(zhuǎn),不過(guò),兩種在設(shè)置過(guò)濾器的情況下,都要通過(guò)過(guò)濾器才能跳轉(zhuǎn)。Servlet的生命周期是筆試的必考題,其實(shí)這是很簡(jiǎn)單的,只需要理解,沒(méi)必要死記硬背的,session算是重要的知識(shí)點(diǎn),很多數(shù)據(jù)都是存儲(chǔ)在內(nèi)存中,如購(gòu)物車,用戶信息等,還可以對(duì)session設(shè)置生存時(shí)間。說(shuō)到session就必須說(shuō)說(shuō)四種會(huì)話跟蹤技術(shù),cookie,URL重寫(xiě),表單域隱藏和session。

JSP:JSP實(shí)際上和servlet是一樣的,只不過(guò)兩者側(cè)重點(diǎn)不同,JSP的內(nèi)置對(duì)象和作用域大致是一樣的,JSP中還有動(dòng)作,常用的有操作JavaBean的動(dòng)作,頁(yè)面跳轉(zhuǎn)的動(dòng)作,以及包含的動(dòng)作。這里重點(diǎn)提到兩種包含的區(qū)別。在JSP還講過(guò)jstl和EL表達(dá)式,都是基礎(chǔ)的應(yīng)用,不過(guò)寫(xiě)自定義的標(biāo)簽還是要有一定的java基礎(chǔ)的,我開(kāi)始不太理解標(biāo)簽的解析過(guò)程,后來(lái)看了幾個(gè)例子,發(fā)現(xiàn)自定義的已不是那么難。

jQuery:jQuery可以說(shuō)是中級(jí)部分學(xué)的最好的,主要是它方便了,特別是選擇器,而且避免了一些瀏覽器的差異,所以在學(xué)習(xí)jQuery后,就再也不想用javascript來(lái)獲取元素了。不僅如此,jQuery中封裝的Ajax操作也是非常簡(jiǎn)單,不需要自己封裝一個(gè)類,$.get和$.post 能夠省去很多麻煩,jQuery的監(jiān)聽(tīng)事件也是很簡(jiǎn)單,不需要在標(biāo)簽中添加對(duì)應(yīng)事件,可以動(dòng)態(tài)的綁定事件。還有就是dom操作更是方便。我在學(xué)習(xí)完Ajax,json后就發(fā)現(xiàn),即使是沒(méi)有JSP,也能做出一個(gè)動(dòng)態(tài)頁(yè)面出來(lái),只是會(huì)存在效率問(wèn)題。

總結(jié):雖然說(shuō)這上面的知識(shí)大部分都掌握了,但是能否靈活運(yùn)用才是重點(diǎn),所以在今后的學(xué)習(xí)中多思考問(wèn)題是否有多種解決方法。

第五篇:javaWeb安全驗(yàn)證漏洞修復(fù)總結(jié)

EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收

漏洞修復(fù)總結(jié)

2011年5月

中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

目 錄 2 WEB安全介紹..........................................................................................................................1 SQL注入、盲注.......................................................................................................................1 2.1 SQL注入、盲注概述.................................................................................................................1 2.2 2.4 3 安全風(fēng)險(xiǎn)及原因...................................................................................................................2 應(yīng)用程序解決方案...............................................................................................................4 2.3 APPSCAN掃描建議......................................................................................................................2

會(huì)話標(biāo)識(shí)未更新.......................................................................................................................7 3.1 3.2 3.4 會(huì)話標(biāo)識(shí)未更新概述...........................................................................................................7 安全風(fēng)險(xiǎn)及原因分析...........................................................................................................8 應(yīng)用程序解決方案...............................................................................................................8 3.3 APPSCAN掃描建議......................................................................................................................8 已解密登錄請(qǐng)求.......................................................................................................................9 4.1 4.2 4.4 已解密登錄請(qǐng)求概述...........................................................................................................9 安全風(fēng)險(xiǎn)及原因分析...........................................................................................................9 應(yīng)用程序解決方案...............................................................................................................9 4.3 APPSCAN掃描建議......................................................................................................................9 跨站點(diǎn)請(qǐng)求偽造.....................................................................................................................11 5.1 5.2 5.4 跨站點(diǎn)請(qǐng)求偽造概述.........................................................................................................11 安全風(fēng)險(xiǎn)及原因分析.........................................................................................................12 應(yīng)用程序解決方案.............................................................................................................13 5.3 APPSCAN掃描建議....................................................................................................................13 不充分賬戶封鎖.....................................................................................................................13 6.1 6.2 6.4 不充分賬戶封鎖概述.........................................................................................................13 安全風(fēng)險(xiǎn)及原因分析.........................................................................................................13 應(yīng)用程序解決方案.............................................................................................................14 6.3 APPSCAN掃描建議....................................................................................................................14 啟用不安全HTTP方法...........................................................................................................14 7.1 7.2 7.4 啟用不安全HTTP方法概述...............................................................................................14 安全風(fēng)險(xiǎn)及原因分析.........................................................................................................15 應(yīng)用程序解決方案.............................................................................................................15 7.3 APPSCAN掃描建議....................................................................................................................15 HTTP注釋敏感信息...............................................................................................................16 8.1 HTTP注釋敏感信息概述........................................................................................................16 8.2 8.4 安全風(fēng)險(xiǎn)及原因分析.........................................................................................................16 應(yīng)用程序解決方案.............................................................................................................17 8.3 APPSCAN掃描建議....................................................................................................................16 發(fā)現(xiàn)電子郵件地址模式.........................................................................................................17

中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

9.1 9.2 9.4 10 發(fā)現(xiàn)電子郵件地址模式概述.............................................................................................17 安全風(fēng)險(xiǎn)及原因分析.........................................................................................................17 應(yīng)用程序解決方案.............................................................................................................17 9.3 APPSCAN掃描建議....................................................................................................................17

通過(guò)框架釣魚(yú).........................................................................................................................20

通過(guò)框架釣魚(yú)概述.............................................................................................................20 安全風(fēng)險(xiǎn)及原因分析.........................................................................................................20 APPSCAN掃描建議...............................................................................................................21 應(yīng)用程序解決方案.............................................................................................................23 10.1 10.2 10.3 10.4 11 檢查到文件替代版本.............................................................................................................25

檢查到文件替代版本概述.................................................................................................25 安全風(fēng)險(xiǎn)及原因分析.........................................................................................................26 APPSCAN掃描建議...............................................................................................................26 應(yīng)用程序解決方案.............................................................................................................26 11.1 11.2 11.3 11.4

中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié) Web安全介紹

目前很多業(yè)務(wù)都依賴于互聯(lián)網(wǎng),例如說(shuō)網(wǎng)上銀行、網(wǎng)絡(luò)購(gòu)物、網(wǎng)游等,很多惡意攻擊者出于不良的目的對(duì)Web 服務(wù)器進(jìn)行攻擊,想方設(shè)法通過(guò)各種手段獲取他人的個(gè)人賬戶信息謀取利益。正是因?yàn)檫@樣,Web業(yè)務(wù)平臺(tái)最容易遭受攻擊。同時(shí),對(duì)Web服務(wù)器的攻擊也可以說(shuō)是形形色色、種類繁多,常見(jiàn)的有掛馬、SQL注入、緩沖區(qū)溢出、嗅探、利用IIS等針對(duì)Webserver漏洞進(jìn)行攻擊。

一方面,由于TCP/IP的設(shè)計(jì)是沒(méi)有考慮安全問(wèn)題的,這使得在網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)是沒(méi)有任何安全防護(hù)的。攻擊者可以利用系統(tǒng)漏洞造成系統(tǒng)進(jìn)程緩沖區(qū)溢出,攻擊者可能獲得或者提升自己在有漏洞的系統(tǒng)上的用戶權(quán)限來(lái)運(yùn)行任意程序,甚至安裝和運(yùn)行惡意代碼,竊取機(jī)密數(shù)據(jù)。而應(yīng)用層面的軟件在開(kāi)發(fā)過(guò)程中也沒(méi)有過(guò)多考慮到安全的問(wèn)題,這使得程序本身存在很多漏洞,諸如緩沖區(qū)溢出、SQL注入等等流行的應(yīng)用層攻擊,這些均屬于在軟件研發(fā)過(guò)程中疏忽了對(duì)安全的考慮所致。

另一方面,用戶對(duì)某些隱秘的東西帶有強(qiáng)烈的好奇心,一些利用木馬或病毒程序進(jìn)行攻擊的攻擊者,往往就利用了用戶的這種好奇心理,將木馬或病毒程序捆綁在一些艷麗的圖片、音視頻及免費(fèi)軟件等文件中,然后把這些文件置于某些網(wǎng)站當(dāng)中,再引誘用戶去單擊或下載運(yùn)行。或者通過(guò)電子郵件附件和QQ、MSN等即時(shí)聊天軟件,將這些捆綁了木馬或病毒的文件發(fā)送給用戶,利用用戶的好奇心理引誘用戶打開(kāi)或運(yùn)行這些文件、SQL注入、盲注 2.1 SQL注入、盲注概述

Web 應(yīng)用程序通常在后端使用數(shù)據(jù)庫(kù),以與企業(yè)數(shù)據(jù)倉(cāng)庫(kù)交互。查詢數(shù)據(jù)庫(kù)事實(shí)上的標(biāo)準(zhǔn)語(yǔ)言是 SQL(各大數(shù)據(jù)庫(kù)供應(yīng)商都有自己的不同版本)。Web 應(yīng)用程序通常會(huì)獲取用戶輸入(取自 HTTP 請(qǐng)求),將它并入 SQL 查詢中,然后發(fā)送到后端數(shù)據(jù)庫(kù)。接著應(yīng)用程序便處理查詢結(jié)果,有時(shí)會(huì)向用戶顯示結(jié)果。如果應(yīng)用程序?qū)τ脩簦ü粽撸┑妮斎胩幚聿粔蛐⌒模粽弑憧梢岳眠@種操作方式。在此情況下,攻擊者可以注入惡意的數(shù)據(jù),當(dāng)該數(shù)據(jù)并入 SQL 查詢中時(shí),就將查詢的原始語(yǔ)法更改得面目全非。例如,如果應(yīng)用程序使用用戶的輸入(如用戶名和密碼)來(lái)查詢用戶帳戶的數(shù)據(jù)庫(kù)表,以認(rèn)證用戶,而攻擊者能夠?qū)阂鈹?shù)據(jù)注入查詢的用戶名部分(和/或密碼部分),查詢便可能更改成 中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

完全不同的數(shù)據(jù)復(fù)制查詢,可能是修改數(shù)據(jù)庫(kù)的查詢,或在數(shù)據(jù)庫(kù)服務(wù)器上運(yùn)行 Shell 命令的查詢。2.2 安全風(fēng)險(xiǎn)及原因

高風(fēng)險(xiǎn)漏洞,攻擊者可能會(huì)查看、修改或刪除數(shù)據(jù)庫(kù)條目和表

原因:未對(duì)用戶輸入正確執(zhí)行危險(xiǎn)字符清理

2.3 AppScan掃描建議

若干問(wèn)題的補(bǔ)救方法在于對(duì)用戶輸入進(jìn)行清理。通過(guò)驗(yàn)證用戶輸入未包含危險(xiǎn)字符,便可能防止惡意的用戶導(dǎo)致應(yīng)用程序執(zhí)行計(jì)劃外的任務(wù),例如:?jiǎn)?dòng)任意 SQL 查詢、嵌入將在客戶端執(zhí)行的 Javascript 代碼、運(yùn)行各種操作系統(tǒng)命令,等等。建議過(guò)濾出所有以下字符: [1] |(豎線符號(hào))[2] &(& 符號(hào))[3];(分號(hào))

[4] $(美元符號(hào))[5] %(百分比符號(hào))[6] @(at 符號(hào))[7] '(單引號(hào))[8] “(引號(hào))

[9] '(反斜杠轉(zhuǎn)義單引號(hào))[10] ”(反斜杠轉(zhuǎn)義引號(hào))[11] <>(尖括號(hào))[12]()(括號(hào))[13] +(加號(hào))

[14] CR(回車符,ASCII 0x0d)[15] LF(換行,ASCII 0x0a)[16] ,(逗號(hào))[17](反斜杠)

以下部分描述各種問(wèn)題、問(wèn)題的修訂建議以及可能觸發(fā)這些問(wèn)題的危險(xiǎn)字符: SQL 注入和 SQL 盲注:

A.確保用戶輸入的值和類型(如 Integer、Date 等)有效,且符合應(yīng)用程序預(yù)期。

B.利用存儲(chǔ)過(guò)程,將數(shù)據(jù)訪問(wèn)抽象化,讓用戶不直接訪問(wèn)表或視圖。當(dāng)使用存儲(chǔ)過(guò)程時(shí),請(qǐng)利用 ADO 命令對(duì)象來(lái)實(shí)施它們,以強(qiáng)化變量類型。C.清理輸入以排除上下文更改符號(hào),例如: [1] '(單引號(hào))[2] “(引號(hào))

[3] '(反斜線轉(zhuǎn)義單引號(hào))中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

[4] ”(反斜杠轉(zhuǎn)義引號(hào))[5])(結(jié)束括號(hào))[6];(分號(hào))跨站點(diǎn)腳本編制:

A.清理用戶輸入,并過(guò)濾出 JavaScript 代碼。我們建議您過(guò)濾下列字符: [1] <>(尖括號(hào))[2] “(引號(hào))[3] '(單引號(hào))[4] %(百分比符號(hào))[5];(分號(hào))[6]()(括號(hào))[7] &(& 符號(hào))[8] +(加號(hào))

B.如果要修訂 <%00script> 變體,請(qǐng)參閱 MS 文章 821349 C.對(duì)于 UTF-7 攻擊: [-] 可能的話,建議您施行特定字符集編碼(使用 'Content-Type' 頭或 標(biāo)記)。

HTTP 響應(yīng)分割:清理用戶輸入(至少是稍后嵌入在 HTTP 響應(yīng)中的輸入)。請(qǐng)確保輸入未包含惡意的字符,例如: [1] CR(回車符,ASCII 0x0d)[2] LF(換行,ASCII 0x0a)遠(yuǎn)程命令執(zhí)行:清理輸入以排除對(duì)執(zhí)行操作系統(tǒng)命令有意義的符號(hào),例如: [1] |(豎線符號(hào))[2] &(& 符號(hào))[3];(分號(hào))

執(zhí)行 shell 命令:

A.絕不將未檢查的用戶輸入傳遞給 eval()、open()、sysopen()、system()之類的 Perl 命令。

B.確保輸入未包含惡意的字符,例如: [1] $(美元符號(hào))[2] %(百分比符號(hào))[3] @(at 符號(hào))

XPath 注入:清理輸入以排除上下文更改符號(hào),例如: [1] '(單引號(hào))[2] ”(引號(hào))等 LDAP 注入:

A.使用正面驗(yàn)證。字母數(shù)字過(guò)濾(A..Z,a..z,0..9)適合大部分 LDAP 查詢。B.應(yīng)該過(guò)濾出或進(jìn)行轉(zhuǎn)義的特殊 LDAP 字符: [1] 在字符串開(kāi)頭的空格或“#”字符 [2] 在字符串結(jié)尾的空格字符 [3] ,(逗號(hào))[4] +(加號(hào))[5] “(引號(hào))[6](反斜杠)[7] <>(尖括號(hào))中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

[8];(分號(hào))[9]()(括號(hào))MX 注入:

應(yīng)該過(guò)濾出特殊 MX 字符: [1] CR(回車符,ASCII 0x0d)

[2] LF(換行,ASCII 0x0a)記錄偽造: 應(yīng)該過(guò)濾出特殊記錄字符: [1] CR(回車符,ASCII 0x0d)[2] LF(換行,ASCII 0x0a)[3] BS(退格,ASCII 0x08)ORM 注入:

A.確保用戶輸入的值和類型(如 Integer、Date 等)有效,且符合應(yīng)用程序預(yù)期。

B.利用存儲(chǔ)過(guò)程,將數(shù)據(jù)訪問(wèn)抽象化,讓用戶不直接訪問(wèn)表或視圖。C.使用參數(shù)化查詢 API D.清理輸入以排除上下文更改符號(hào),例如:(*): [1] '(單引號(hào))[2] ”(引號(hào))

[3] '(反斜線轉(zhuǎn)義單引號(hào))[4] “(反斜杠轉(zhuǎn)義引號(hào))[5])(結(jié)束括號(hào))[6];(分號(hào))2.4 應(yīng)用程序解決方案

1、我們?yōu)榱苏{(diào)試方便,在頁(yè)面上會(huì)拋出數(shù)據(jù)庫(kù)異常信息,如果入侵工具獲取了這些信息,就可以獲取系統(tǒng)的一些配置信息,如web系統(tǒng)框架、采用的數(shù)據(jù)庫(kù)等,從而找出系統(tǒng)漏洞。所以不要在頁(yè)面上拋出異常的詳細(xì)信息,這些信息對(duì)客戶并沒(méi)有用,只是方便技術(shù)人員調(diào)試罷了,處理方法是在異常處理頁(yè)面把打印異常代碼刪除即可;

2、新建一個(gè)過(guò)濾器,通過(guò)過(guò)濾器過(guò)濾SQL注入特殊字符,配置成功后,重啟服務(wù),用Appsan工具掃描,漏洞得到解決,通過(guò)過(guò)濾器可以解決SQL注入、跨站點(diǎn)腳本編制及通過(guò)框架釣魚(yú)等問(wèn)題,具體實(shí)現(xiàn)方式如下:

1、在web.xml文件中配置過(guò)濾器

requestEncodingFilter /* InjectFilter com.sitech.ismp.util.context.InjectFilter lass> 中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

2、過(guò)濾器過(guò)濾代碼

public class InjectFilter extends IsmpServletFilter {

private String failPage = ”/loginout.jsp“;//發(fā)生注入時(shí),跳轉(zhuǎn)頁(yè)面

public void doFilter(ServletRequest request,ServletResponse response,F(xiàn)ilterChain filterchain)throws IOException, ServletException { //判斷是否有注入攻擊字符

HttpServletRequest req =(HttpServletRequest)request;

String inj = injectInput(req);if(!inj.equals(”“)){ request.getRequestDispatcher(failPage).forward(request, return;response);} else { // 傳遞控制到下一個(gè)過(guò)濾器

filterchain.doFilter(request, response);} } /** * 判斷request中是否含有注入攻擊字符 * @param request * @return */ public String injectInput(ServletRequest request){

Enumeration e = request.getParameterNames();String attributeName;String attributeValues[];String inj = ”“;

while(e.hasMoreElements()){ attributeName =(String)e.nextElement();//不對(duì)密碼信息進(jìn)行過(guò)濾,一般密碼中可以包含特殊字符

if(attributeName.equals(”userPassword“)||attributeName.equals(”co

||attributeName.equals(“password”)||attributeName.equals(“PASSWOR continue;nfirmPassword”)||attributeName.equals(“PASSWORD”)D2“)||attributeName.equals(”valiPassword“)){ 5 中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

}

attributeValues = request.getParameterValues(attributeName);

for(int i = 0;i < attributeValues.length;i++){

if(attributeValues[i]==null||attributeValues[i].equals(”“))

continue;

inj = injectChar(attributeValues[i]);

if(!inj.equals(”“)){

return inj;

}

} } return inj;} /** * 判斷字符串中是否含有注入攻擊字符 * @param str * @return */ public String injectChar(String str){

String inj_str = ”“)' * %”;String inj_stra[] = inj_str.split(“ ”);

for(int i = 0;i < inj_stra.length;i++){ if(str.indexOf(inj_stra[i])>=0){ return inj_stra[i];} } return “";}

}

中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié) 會(huì)話標(biāo)識(shí)未更新 3.1 會(huì)話標(biāo)識(shí)未更新概述

“會(huì)話固定”是一種攻擊技術(shù),會(huì)強(qiáng)制用戶的會(huì)話標(biāo)識(shí)變成顯式值。固定會(huì)話標(biāo)識(shí)值的技術(shù)有許多種,會(huì)隨著目標(biāo) Web 站點(diǎn)的功能而不同。從利用“跨站點(diǎn)腳本編制”到向 Web 站點(diǎn)密集發(fā)出先前生成的 HTTP 請(qǐng)求,都在這些技術(shù)范圍內(nèi)。用戶的會(huì)話標(biāo)識(shí)固定之后,攻擊者會(huì)等待用戶登錄,然后利用預(yù)定義的會(huì)話標(biāo)識(shí)值來(lái)假定用戶的聯(lián)機(jī)身份。

一般而言,對(duì)于標(biāo)識(shí)值的會(huì)話管理系統(tǒng)有兩種類型。第一種類型是“寬容”系統(tǒng),可讓 Web 瀏覽器指定任何標(biāo)識(shí)。第二種類型是“嚴(yán)格”系統(tǒng),只接受服務(wù)器端生成的值。當(dāng)使用寬容系統(tǒng)時(shí),不需要聯(lián)系 Web 站點(diǎn),便可以維護(hù)任何會(huì)話標(biāo)識(shí)。在嚴(yán)格系統(tǒng)中,攻擊者需要維護(hù)“陷阱會(huì)話”并且必須定期聯(lián)系 Web 站點(diǎn),才能防止閑置超時(shí)。對(duì)于會(huì)話固定,倘若沒(méi)有活動(dòng)保護(hù),使用會(huì)話來(lái)識(shí)別已認(rèn)證的用戶的任何 Web 站點(diǎn)都可能受到攻擊。使用會(huì)話標(biāo)識(shí)的 Web 站點(diǎn)通常都是基于 cookie 的站點(diǎn),但也會(huì)使用 URL 和隱藏的表單字段。不幸的是,基于 cookie 的會(huì)話最容易受到攻擊。目前已識(shí)別的大多數(shù)攻擊方法都是針對(duì) cookie 的固定。相對(duì)于在用戶登錄 Web 站點(diǎn)之后,再竊取用戶的會(huì)話標(biāo)識(shí),會(huì)話固定提供的機(jī)會(huì)多得多。

在用戶登錄之前,攻擊的活動(dòng)部分便已啟動(dòng)。

會(huì)話固定攻擊過(guò)程通常由三個(gè)步驟組成:

1)安裝會(huì)話

攻擊者針對(duì)目標(biāo) Web 站點(diǎn)設(shè)下“陷阱會(huì)話”,并獲取這個(gè)會(huì)話的標(biāo)識(shí),攻擊者也可以選擇攻擊中所用的任意會(huì)話標(biāo)識(shí)。在某些情況下,必須反復(fù)聯(lián)系 Web 站點(diǎn),才能維護(hù)確定好的陷阱會(huì)話值。

2)固定會(huì)話

攻擊者將陷阱會(huì)話值引進(jìn)用戶的瀏覽器中,固定用戶的會(huì)話標(biāo)識(shí)。

3)進(jìn)入會(huì)話

用戶登錄目標(biāo) Web 站點(diǎn)之后,當(dāng)使用固定會(huì)話標(biāo)識(shí)值時(shí),攻擊者便可加以接管。”

修改

對(duì)于這類問(wèn)題解決方案為在用戶進(jìn)入登錄頁(yè)面時(shí)清空session讓cookie過(guò)期

request.getSession(true).invalidate();//清空session Cookie cookie = request.getCookies()[0];//獲取cookie cookie.setMaxAge(0);//讓cookie過(guò)期

另外一種方式利用JSP的一些特性,不讓登錄頁(yè)面產(chǎn)生Session <% page session=”false” %> 中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

3.2 安全風(fēng)險(xiǎn)及原因分析

高風(fēng)險(xiǎn)漏洞,可能會(huì)竊取或操縱客戶會(huì)話和 cookie,它們可能用于模仿合法用戶,從而使黑客能夠以該用戶身份查看或變更用戶記錄以及執(zhí)行事務(wù)

原因:Web 應(yīng)用程序編程或配置不安全

3.3 AppScan掃描建議

始終生成新的會(huì)話,供用戶成功認(rèn)證時(shí)登錄。防止用戶操縱會(huì)話標(biāo)識(shí)。

請(qǐng)勿接受用戶瀏覽器登錄時(shí)所提供的會(huì)話標(biāo)識(shí)

3.4 應(yīng)用程序解決方案

會(huì)話標(biāo)識(shí)未更新,Appscan給出的描述是建議用戶每次登錄時(shí)需使用新的會(huì)話標(biāo)識(shí)。應(yīng)用程序?qū)崿F(xiàn)上就是在登錄模塊,添加以下代碼,即用戶登錄后,重新生成會(huì)話。

HttpSession session = request.getSession(false);if(session!=null){ //讓cookie過(guò)期

session.invalidate();

Cookie cookie = request.getCookies()[0];//獲取cookie

cookie.setMaxAge(0);//讓cookie過(guò)期 } request.getSession(true);//生成新會(huì)話

經(jīng)過(guò)測(cè)試,這段代碼只在weblogic和tomcat下才有效,在公司中間件webspeed及jboss6.0下問(wèn)題都依然存在,但從掃描的結(jié)果信息分析看,漏洞已經(jīng)解決,分析判斷應(yīng)該只是session處理機(jī)制不同,AppScan工具仍認(rèn)為存在漏洞風(fēng)險(xiǎn)。在與電信溝通中我們存在一個(gè)經(jīng)驗(yàn)教訓(xùn)大家一定要吸取,不能過(guò)渡迷信流行的自動(dòng)化測(cè)試工具,尤其是對(duì)于Appscan這種判斷防御行為的復(fù)雜軟件,僅靠有限的規(guī)則設(shè)置就當(dāng)做是web安全的唯一標(biāo)準(zhǔn)這顯然不太合理,這種情況一定要與測(cè)試方溝通解釋。

另一方面,對(duì)于公司的產(chǎn)品webspeed,也想提點(diǎn)建議,商務(wù)項(xiàng)目采用公司的產(chǎn)品為公司節(jié)約了不少成本,但是我們產(chǎn)品后續(xù)升級(jí)維護(hù)也必須重視起來(lái),當(dāng)確認(rèn)出是webspeed本身問(wèn)題后,聯(lián)系vasg相關(guān)人員進(jìn)行協(xié)調(diào)解決,根本沒(méi)有非常了解該產(chǎn)品技術(shù)人員支持,只是一個(gè)剛?cè)肼毜耐略谂浜蠝y(cè)試。調(diào)試了一周時(shí)間仍不能解決,最后只能作為一個(gè)遺留問(wèn)題擱置。公司一直在向產(chǎn)品化轉(zhuǎn)變,但是自身的產(chǎn)品維護(hù)、升級(jí)、管理仍然需要改進(jìn)。

中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié) 已解密登錄請(qǐng)求 4.1 已解密登錄請(qǐng)求概述

在應(yīng)用程序測(cè)試過(guò)程中,檢測(cè)到將未加密的登錄請(qǐng)求發(fā)送到服務(wù)器。由于登錄過(guò)程所用的部分輸入字段(例如:用戶名、密碼、電子郵件地址、社會(huì)保險(xiǎn)號(hào)碼,等等)是個(gè)人敏感信息,建議通過(guò)加密連接(如 SSL)將其發(fā)送到服務(wù)器。任何以明文傳給服務(wù)器的信息都可能被竊,稍后可用來(lái)電子欺騙身份或偽裝用戶。此外,若干隱私權(quán)法規(guī)指出,用戶憑證之類的敏感信息一律以加密方式傳給網(wǎng)站。

4.2 安全風(fēng)險(xiǎn)及原因分析

安全風(fēng)險(xiǎn)中,可能會(huì)竊取諸如用戶名和密碼等未經(jīng)加密即發(fā)送了的用戶登錄信息

原因:諸如用戶名、密碼和信用卡號(hào)之類的敏感輸入字段未經(jīng)加密即進(jìn)行了傳 遞

4.3 AppScan掃描建議

1.確保所有登錄請(qǐng)求都以加密方式發(fā)送到服務(wù)器。2.請(qǐng)確保敏感信息,例如:密碼

-社會(huì)保險(xiǎn)號(hào)碼駕照號(hào)碼

-電子郵件地址郵政編碼

一律以加密方式傳給服務(wù)器。4.4 應(yīng)用程序解決方案

已解密的登錄請(qǐng)求,要求就是數(shù)據(jù)要加密傳輸。最簡(jiǎn)單有效的解決方式采用SSL加密協(xié)議傳輸,但是由于EMA服務(wù)管理平臺(tái)業(yè)務(wù)的特殊性,采用SSL加密方式對(duì)現(xiàn)有的業(yè)務(wù)影響太大,所以最終沒(méi)有采用此種方式解決該問(wèn)題,但個(gè)人在進(jìn)行測(cè)試過(guò)程中也嘗試在tomcat和jboss下SSL方式配置,寫(xiě)下來(lái)供參考。

中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

Jboss內(nèi)核也是tomcat,所以兩者配置基本都是一樣,都是在生成證書(shū)文件后,在service.xml 進(jìn)行配置:

1.進(jìn)入到cmd 進(jìn)入到j(luò)dk bin目錄下執(zhí)行keytool-genkey-alias tomcat-keyalg RSA-keystore webspeed.keystore 生成證書(shū) 2.在service.xml配置SSL

keystoreFile=”C:tomcat-5.5.26confwebspeed.keystore“ keystorePass=”1111aaaa“/> 這樣配置后雖然可以通過(guò)https訪問(wèn),但仍然還可以通過(guò)8080使用普通的http訪問(wèn),所以還必須禁止普通模式登錄。所以還得在web.xml添加配置。01 02 03 04 05 06 07 SSL 08 09 *.jsp 10 11 *.action 12 13 14 15 16 17 CONFIDENTIAL 18 19 20 中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié) 22 23 24 25 26 27 CLIENT-CERT 28 29 Client Cert Users-only Area 30 31 應(yīng)注意,由于項(xiàng)目的一些組件無(wú)法通過(guò)https,因此url-pattern字段只對(duì).jsp和.action進(jìn)行了限制,如果不做特定限制,則系統(tǒng)默認(rèn)是全部使用https傳輸。而且上述設(shè)置一旦在某個(gè)工程中出現(xiàn),那么當(dāng)前tomcat將全局采用這一配置。跨站點(diǎn)請(qǐng)求偽造 5.1 跨站點(diǎn)請(qǐng)求偽造概述

“跨站點(diǎn)偽造請(qǐng)求(CSRF)”攻擊可讓黑客以受害者的名義在易受攻擊的站點(diǎn)上運(yùn)行操作。當(dāng)易受攻擊的站點(diǎn)未適當(dāng)驗(yàn)證請(qǐng)求來(lái)源時(shí),便可能出現(xiàn)這個(gè)攻擊。這個(gè)漏洞的嚴(yán)重性取決于受影響的應(yīng)用程序的功能,例如,對(duì)搜索頁(yè)面的 CSRF 攻擊,嚴(yán)重性低于對(duì)轉(zhuǎn)帳頁(yè)面或概要更新頁(yè)面的 CSRF 攻擊。

這項(xiàng)攻擊的執(zhí)行方式,是強(qiáng)迫受害者的瀏覽器向易受攻擊的站點(diǎn)發(fā)出 HTTP 請(qǐng)求。如果用戶目前已登錄受害者站點(diǎn),請(qǐng)求會(huì)自動(dòng)使用用戶的憑證(如會(huì)話 Cookie、用戶的 IP 地址,以及其他瀏覽器認(rèn)證方法)。攻擊者利用這個(gè)方法來(lái)偽造受害者的身份,再代替他來(lái)提交操作。換句話來(lái)說(shuō),易受攻擊的站點(diǎn)未采取適當(dāng)措施來(lái)驗(yàn)證用戶實(shí)際是否想執(zhí)行特定操作。強(qiáng)迫受害者發(fā)送非預(yù)期的請(qǐng)求,方法有許多種:

-通過(guò)電子郵件向受害者發(fā)送易受攻擊應(yīng)用程序的惡意鏈接。在公共論壇中,張貼易受攻擊站點(diǎn)的鏈接。中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

-利用站點(diǎn)(或另一個(gè)站點(diǎn))的“跨站點(diǎn)腳本編制”或“鏈接注入”漏洞,將瀏覽器自動(dòng)重定向到易受攻擊的站點(diǎn)。

如果攻擊者利用易受攻擊的站點(diǎn)本身的“鏈接注入”漏洞,可以增加用戶通過(guò)站點(diǎn)認(rèn)證的可能性,進(jìn)而增加攻擊成功的可能性。

例如,攻擊者可以利用上述任何選項(xiàng)來(lái)誘惑受害者查看含有下列條目的頁(yè)面:

這會(huì)使受害者的瀏覽器自動(dòng)請(qǐng)求 URL 及瀏覽器的當(dāng)前憑證。如果這個(gè)銀行業(yè)站點(diǎn)易受到 CSRF 攻擊,它會(huì)根據(jù)應(yīng)用程序邏輯,從受害者的帳戶中,將 1000 美元轉(zhuǎn)賬到 John 的銀行帳戶。“跨站點(diǎn)偽造請(qǐng)求”攻擊也稱為 CSRF(發(fā)音為 C-Serf)、XSRF、“跨站點(diǎn)偽造引用”、“單鍵攻擊”以及“會(huì)話騎乘”。您可以利用下列方式來(lái)驗(yàn)證您的應(yīng)用程序是否易受到 CSRF 攻擊: [1] 檢查易受攻擊的鏈接/請(qǐng)求是否未包括攻擊者難以猜中的參數(shù) [2] 檢查易受攻擊的鏈接/請(qǐng)求是否會(huì)執(zhí)行只應(yīng)自愿執(zhí)行的操作

含有用戶在不知不覺(jué)中提交的請(qǐng)求所能直接訪問(wèn)的敏感操作的應(yīng)用程序,被視為很容易遭受 CSRF 攻擊。CSRF 也可能出現(xiàn)在登錄頁(yè)面和注銷頁(yè)面上。由于攻擊者可以偽造來(lái)自受害者的連續(xù)注銷請(qǐng)求,因此 CSRF 可能導(dǎo)致服務(wù)拒絕。在登錄頁(yè)面上,CSRF 可以允許攻擊者使用包含攻擊者用戶名和密碼的偽造請(qǐng)求來(lái)將客戶機(jī)登錄到攻擊者的賬戶中。登錄 CSRF 攻擊會(huì)帶有嚴(yán)重的后果,這取決于其他站點(diǎn)行為。例如,如果站點(diǎn)保留了用戶操作的歷史記錄(例如搜索歷史記錄),那么攻擊者將能夠在易受攻擊的站點(diǎn)上查看受害者之前執(zhí)行的操作。5.2 安全風(fēng)險(xiǎn)及原因分析

安全風(fēng)險(xiǎn)中,可能會(huì)竊取或操縱客戶會(huì)話和 cookie,它們可能用于模仿合法用戶,從而使黑客能夠以該用戶身份查看或變更用戶記錄以及執(zhí)行事務(wù) 原因:應(yīng)用程序使用的認(rèn)證方法不充分

中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

5.3 AppScan掃描建議

如果要避免 CSRF 攻擊,每個(gè)請(qǐng)求都應(yīng)該包含唯一標(biāo)識(shí),它是攻擊者所無(wú)法猜測(cè)的參數(shù)。建議的選項(xiàng)之一是添加取自會(huì)話 cookie 的會(huì)話標(biāo)識(shí),使它成為一個(gè)參數(shù)。服務(wù)器必須檢查這個(gè)參數(shù)是否符合會(huì)話 cookie,若不符合,便廢棄請(qǐng)求。攻擊者無(wú)法猜測(cè)這個(gè)參數(shù)的原因是應(yīng)用于 cookie 的“同源策略”,因此,攻擊者無(wú)法偽造一個(gè)虛假的請(qǐng)求,讓服務(wù)器誤以為真。攻擊者難以猜測(cè)且無(wú)法訪問(wèn)的任何秘密(也就是無(wú)法從其他域訪問(wèn)),都可用來(lái)替換會(huì)話標(biāo)識(shí)。這可以防止攻擊者設(shè)計(jì)看似有效的請(qǐng)求。

5.4 應(yīng)用程序解決方案

已解密的登錄請(qǐng)求,要求就是數(shù)據(jù)要加密傳輸。最簡(jiǎn)單有效的解決方式采用SSL加密協(xié)議傳輸,但是由于EMA服務(wù)管理平臺(tái)業(yè)務(wù)的特殊性,采用SSL加密方式對(duì)現(xiàn)有的業(yè)務(wù)影響太大,所以最終沒(méi)有采用此種方式解決該問(wèn)題,但個(gè)人在進(jìn)行測(cè)試過(guò)程中也嘗試在tomcat和jboss下SSL方式配置,寫(xiě)下來(lái)供參考。6 不充分賬戶封鎖 6.1 不充分賬戶封鎖概述

蠻力攻擊是指惡意用戶發(fā)送大量可能的密碼和/或用戶名以訪問(wèn)應(yīng)用程序的嘗試。由于該技術(shù)包含大量登錄嘗試,未限制允許的錯(cuò)誤登錄請(qǐng)求次數(shù)的應(yīng)用程序很容易遭到這類攻擊。因此,強(qiáng)烈建議您對(duì)帳戶限制允許的錯(cuò)誤登錄嘗試次數(shù),超過(guò)該次數(shù),便鎖定該帳戶。樣本利用: 下列請(qǐng)求說(shuō)明密碼猜測(cè)請(qǐng)求:

http://site/login.asp?username=EXISTING_USERNAME&password=GUESSED_PASSWORD 如果站點(diǎn)在若干次錯(cuò)誤嘗試之后并不鎖定測(cè)試的帳戶,攻擊者最終可能會(huì)發(fā)現(xiàn)帳戶密碼,并使用它來(lái)假冒帳戶的合法用戶。6.2 安全風(fēng)險(xiǎn)及原因分析

安全風(fēng)險(xiǎn)高,可能會(huì)升級(jí)用戶特權(quán)并通過(guò) Web 應(yīng)用程序獲取管理許可權(quán)

原因:Web 應(yīng)用程序編程或配置不安全

中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

6.3 AppScan掃描建議

請(qǐng)確定允許的登錄嘗試次數(shù)(通常是 3-5 次),確保超出允許的嘗試次數(shù)之后,便鎖定帳戶。為了避免真正的用戶因帳戶被鎖定而致電支持人員的麻煩,可以僅臨時(shí)性暫掛帳戶活動(dòng),并在特定時(shí)間段之后啟用帳戶。帳戶鎖定大約 10 分鐘,通常便足以阻止蠻力攻擊。

6.4 應(yīng)用程序解決方案

根據(jù)掃描建議,web應(yīng)用程序設(shè)定允許登錄嘗試次數(shù),登錄連續(xù)失敗超過(guò)設(shè)定次數(shù),就鎖定用戶,失敗次數(shù)靈活配置。

在用戶登錄時(shí)進(jìn)行驗(yàn)證:

if(!encrypter.encrypt(userPassword).equalsIgnoreCase({

} //更新此用戶登錄失敗次數(shù)

this.updateLoginFailTimes(userCode);//如果用戶連續(xù)登錄失敗次數(shù)超過(guò)配置值則將其鎖定

int loginLockTimes=this.getLoginLockTimes();if(this.getLoginFailTimes(userCode)>=loginLockTimes){ } throw new MySecurityException(”密碼不正確!用戶:“ + userCode);this.lockUser(userCode);user.getLOGIN_PASSWD()== null ? ”“ : user.getLOGIN_PASSWD()))7 啟用不安全HTTP方法 7.1 啟用不安全HTTP方法概述

似乎 Web 服務(wù)器配置成允許下列其中一個(gè)(或多個(gè))HTTP 方法(動(dòng)詞):

-DELETE COPY PROPFIND LOCK-UNLOCK

這些方法可能表示在服務(wù)器上啟用了 WebDAV,可能允許未授權(quán)的用戶對(duì)其進(jìn)行利用。

7.2 安全風(fēng)險(xiǎn)及原因分析

安全風(fēng)險(xiǎn)中,可能會(huì)在 Web 服務(wù)器上上載、修改或刪除 Web 頁(yè)面、腳本和文件

原因:Web 服務(wù)器或應(yīng)用程序服務(wù)器是以不安全的方式配置的

7.3 AppScan掃描建議

如果服務(wù)器不需要支持 WebDAV,請(qǐng)務(wù)必禁用它,或禁止不必要的 HTTP 方法(動(dòng)詞)。

7.4 應(yīng)用程序解決方案

修改web工程中web.xml,增加安全配置信息,禁用不必要HTTP方法

HtmlAdaptor test *.jsp *.do GET POST PUT DELETE HEAD OPTIONS TRACE

中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

JBossAdmin HTTP注釋敏感信息 8.1 HTTP注釋敏感信息概述

很多 Web 應(yīng)用程序程序員使用 HTML 注釋,以在需要時(shí)幫助調(diào)試應(yīng)用程序。盡管添加常規(guī)注釋有助于調(diào)試應(yīng)用程序,但一些程序員往往會(huì)遺留重要數(shù)據(jù)(例如:與 Web 應(yīng)用程序相關(guān)的文件名、舊的鏈接或原非供用戶瀏覽的鏈接、舊的代碼片段等)。8.2 安全風(fēng)險(xiǎn)及原因分析

安全風(fēng)險(xiǎn)低,能會(huì)收集有關(guān) Web 應(yīng)用程序的敏感信息,如用戶名、密碼、機(jī)器名和/或敏感文件位置

原因:程序員在 Web 頁(yè)面上留下調(diào)試信息

8.3 AppScan掃描建議

[1] 請(qǐng)勿在 HTML 注釋中遺留任何重要信息(如文件名或文件路徑)。

[2] 從生產(chǎn)站點(diǎn)注釋中除去以前(或未來(lái))站點(diǎn)鏈接的跟蹤信息。

[3] 避免在 HTML 注釋中放置敏感信息。

[4] 確保 HTML 注釋不包括源代碼片段。

[5] 確保程序員沒(méi)有遺留重要信息。

中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

8.4 應(yīng)用程序解決方案

雖然這個(gè)漏洞為低級(jí)別漏洞,但電信方也是要求必須修復(fù),要修改此漏洞需要檢查工程中的每一個(gè)jsp頁(yè)面,工作量還是挺大。所以在后續(xù)開(kāi)發(fā)過(guò)程中注釋盡量寫(xiě)英文注釋,盡量不要遺留敏感注釋信息在jsp代碼中,養(yǎng)成良好的編碼習(xí)慣才是解決問(wèn)題根本。發(fā)現(xiàn)電子郵件地址模式

9.1 發(fā)現(xiàn)電子郵件地址模式概述

Spambot 搜尋因特網(wǎng)站點(diǎn),開(kāi)始查找電子郵件地址來(lái)構(gòu)建發(fā)送自發(fā)電子郵件(垃圾郵件)的郵件列表。AppScan 檢測(cè)到含有一或多個(gè)電子郵件地址的響應(yīng),可供利用以發(fā)送垃圾郵件。而且,找到的電子郵件地址也可能是專用電子郵件地址,對(duì)于一般大眾應(yīng)是不可訪問(wèn)的。9.2 安全風(fēng)險(xiǎn)及原因分析

安全風(fēng)險(xiǎn)低,能會(huì)收集有關(guān) Web 應(yīng)用程序的敏感信息,如用戶名、密碼、機(jī)器名和/或敏感文件位置

原因:Web 應(yīng)用程序編程或配置不安全

9.3 AppScan掃描建議

從 Web 站點(diǎn)中除去任何電子郵件地址,使惡意的用戶無(wú)從利用。

9.4 應(yīng)用程序解決方案

根據(jù)掃描建議刪除注釋中出現(xiàn)email地址信息,如果頁(yè)面中要顯示mail地址轉(zhuǎn)為圖片形式展示。如:ema服務(wù)管理平臺(tái)首頁(yè)需要展示客戶聯(lián)系方式,并且聯(lián)系方式、email等信息,這些信息用戶都是可以自行修改的,因?yàn)榘薳mail地址,所以聯(lián)系方式就轉(zhuǎn)為圖片形式:

<%@ page language=”java“ contentType=”text/html;charset=gb2312“%> <%@ include file=”/common/taglib.jsp“ %> <%@ include file=”/common/chart.jsp“ %> <%@ page import=”java.util.List,java.util.*,java.awt.*,java.awt.image.*,com.su 17 中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

n.image.codec.jpeg.*,java.util.*“ %> <%@ page import=”com.sitech.ismp.informationService.publish.dao.TB_SYS_SUPPORT_STAFFDao“ %> <%@ include file=”/common/link.jsp“ %> <%@ page import=”com.sitech.ismp.util.context.CommUtil“ %>

運(yùn)營(yíng)中心聯(lián)系方式

<%

List typeList =(List)request.getAttribute(”typeList“);out.clear();out = pageContext.pushBody();response.addHeader(”pragma“,”NO-cache“);response.addHeader(”Cache-Control“,”no-cache“);response.addDateHeader(”Expries“,0);int rowheight=20;

int width=135,height=rowheight*typeList.size();String ty= ”“;String mob=”“;for(int i=0;i

HashMap hm=(HashMap)typeList.get(i);ty=(String)hm.get(”TYPE_ID“);List sta =(List)dao.findSupportStaffByTypeId(ty);for(int k=0;k

TB_SYS_SUPPORT_STAFFDao dao= new TB_SYS_SUPPORT_STAFFDao();response.setContentType(”image/jpeg“);

中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

HashMap map =(HashMap)sta.get(k);

mob =(String)map.get(”MOBILE“);

height+=3*rowheight;

if(mob!=null)height+=rowheight;

}

}

BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);Graphics g = image.getGraphics();g.setColor(Color.white);g.fillRect(0, 0, width, height);g.setColor(Color.BLUE);Font font=new Font(”宋體“,Font.PLAIN,13);g.setFont(font);int row=0;

String typeid = ”“;

String typename=”“;

String name = ”“;

String tel=”“;

String mail = ”“;

String mobile=”“;

for(int i=0;i

HashMap hm=(HashMap)typeList.get(i);

typeid=(String)hm.get(”TYPE_ID“);

typename=(String)hm.get(”TYPE_NAME“);

row++;

g.drawString(typename,0,(row-1)*rowheight+10);

List staffs =(List)dao.findSupportStaffByTypeId(typeid);

for(int k=0;k

HashMap map =(HashMap)staffs.get(k);

name =(String)map.get(”NAME“);

tel =(String)map.get(”TEL“);

mail =(String)map.get(”MAIL“);

mobile =(String)map.get(”MOBILE“);

row++;

g.drawString(name+”:"+tel,0,(row-1)*rowheight+10);

row++;

g.drawString(mail,0,(row-1)*rowheight+10);

if(mobile!=null){

row++;

g.drawString(mail,0,(row-1)*rowheight+10);} 19 中國(guó)電信EMA服務(wù)管理平臺(tái)二期擴(kuò)容安全驗(yàn)收漏洞修復(fù)總結(jié)

} } g.dispose();ServletOutputStream outStream = response.getOutputStream();

JPEGImageEncoder encoder encoder.encode(image);outStream.close();=JPEGCodec.createJPEGEncoder(outStream);%>

下載Javaweb期末試卷總結(jié)版2word格式文檔
下載Javaweb期末試卷總結(jié)版2.doc
將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
點(diǎn)此處下載文檔

文檔為doc格式


聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

相關(guān)范文推薦

    JavaWeb實(shí)習(xí)報(bào)告

    武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 生產(chǎn)實(shí)習(xí)報(bào)告 JavaWeb實(shí)習(xí)報(bào)告 一、實(shí)習(xí)目的與任務(wù) 為了鍛煉我們的實(shí)踐動(dòng)手能力,提高我們分析問(wèn)題、解決問(wèn)題的能力,培養(yǎng)我們的工作意識(shí)和......

    javaWeb面試題(含答案)

    1、jsp和servlet的區(qū)別、共同點(diǎn)、各自應(yīng)用的范圍?? JSP是Servlet技術(shù)的擴(kuò)展,本質(zhì)上就是Servlet的簡(jiǎn)易方式。JSP編譯后是“類servlet”。Servlet和JSP最主要的不同點(diǎn)在于,Servle......

    javaweb筆試題

    (1) 假設(shè)在helloapp應(yīng)用中有一個(gè)hello.jsp,它的文件路徑如下: %CATALINA_HOME%/webapps/helloapp/hello/hello.jsp c 那么在瀏覽器端訪問(wèn)hello.jsp的URL是什么? 選項(xiàng): (A) ht......

    javaweb畢業(yè)實(shí)習(xí)報(bào)告

    javaweb畢業(yè)實(shí)習(xí)報(bào)告 javaweb畢業(yè)實(shí)習(xí)報(bào)告一、實(shí)訓(xùn)題目 會(huì)員管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)二、實(shí)訓(xùn)內(nèi)容 引言 .1系統(tǒng)開(kāi)發(fā)背景 本系統(tǒng)是在Internet普及的情況下,越來(lái)越多的公司企業(yè)建設(shè)......

    javaweb 實(shí)訓(xùn)報(bào)告

    1、實(shí)習(xí)題目:java軟件開(kāi)發(fā)2、實(shí)習(xí)目的: 本人由于在達(dá)內(nèi)實(shí)訓(xùn)時(shí),各項(xiàng)成績(jī)優(yōu)異,被北京木聯(lián)能科技有限公司錄用為java軟件開(kāi)發(fā)實(shí)習(xí)生,作為即將步入社會(huì)的應(yīng)屆畢業(yè)生,我?guī)е鵁o(wú)比激動(dòng)的......

    Javaweb復(fù)習(xí)題(帶答案)

    Javaweb復(fù)習(xí)題 1.什么是超文本協(xié)議?一般JSP應(yīng)用程序服務(wù)器(WEB服務(wù)器)使用的發(fā)布端口是多少? 超文本協(xié)議(HTTP)Hypertext Transfer Protocol:進(jìn)行超文本和超媒體數(shù)據(jù)的傳輸. 發(fā)布......

    javaWeb學(xué)習(xí)[小編推薦]

    JavaWeb學(xué)習(xí)筆記___d9.txt 2010-12-14 22:51 Session (會(huì)話) Session對(duì)象 1、存在于服務(wù)器端 2、依賴于線程 3、Session的生命周期,跟一次瀏覽器窗口有關(guān),只要窗口不關(guān)閉,Sessi......

    JavaWeb項(xiàng)目需要掌握技術(shù)

    lJava語(yǔ)言 l面向?qū)ο蠓治鲈O(shè)計(jì)思想 l設(shè)計(jì)模式和框架結(jié)構(gòu) lXML語(yǔ)言 l網(wǎng)頁(yè)腳本語(yǔ)言 l數(shù)據(jù)庫(kù) l應(yīng)用服務(wù)器 l集成開(kāi)發(fā)環(huán)境下面我們具體地看每個(gè)技術(shù). 1、Java語(yǔ)言 Java語(yǔ)言體系比......

主站蜘蛛池模板: 妺妺窝人体色777777| 日本丰满人妻xxxxxhd| 国产爆乳成av人在线播放| 亚洲欧美在线综合色影视| 亚洲成在人线在线播放无码| 伊人久久精品无码二区麻豆| www午夜精品男人的天堂| 国产美女在线精品免费观看网址| 亚洲精品国产av成拍色拍个| 性少妇中国内射xxxx狠干| 日本熟妇厨房bbw| 日韩亚洲国产综合αv高清| 免费无遮挡无码永久在线观看视频| 亚洲欧美黑人猛交群| 欧美精品一区二区性色a+v| 国产成人综合久久精品推| 富婆如狼似虎找黑人老外| 国产成人精品日本亚洲专区61| 69精品人人人人| 无码国内精品久久人妻| 亚欧av无码乱码在线观看性色| 亚洲精品无码久久久久久| 亚洲 欧美 激情 小说 另类| 国产麻豆精品久久一二三| 蜜桃视频在线观看免费视频网站www| 国产精品电影一区二区在线播放| 一区一区三区产品乱码| 中文无码一区二区三区在线观看| 丰满爆乳无码一区二区三区| 国产精品视频全国免费观看| 亚洲视频无码高清在线| 久久国内精品自在自线观看| 国产福利无码一区二区在线| 成人性做爰aaa片免费看| 成人夜色视频网站在线观看| 日本极品少妇xxxx| 国产美女精品自在线拍免费| 久久99精品久久久久久青青| 国产成人亚洲综合app网站| 国产美女极度色诱视频www| 欧美性色欧美a在线播放|