https三種實(shí)現(xiàn)途徑_第1頁(yè)
https三種實(shí)現(xiàn)途徑_第2頁(yè)
https三種實(shí)現(xiàn)途徑_第3頁(yè)
https三種實(shí)現(xiàn)途徑_第4頁(yè)
https三種實(shí)現(xiàn)途徑_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

千里之行,始于足下。第2頁(yè)/共2頁(yè)精品文檔推薦https三種實(shí)現(xiàn)途徑

HTTPS的三種實(shí)現(xiàn)辦法

HTTPS實(shí)際是SSLoverHTTP,該協(xié)議經(jīng)過(guò)SSL在發(fā)送方把原始數(shù)據(jù)舉行加密,在接收方解密,所以,所傳送的數(shù)據(jù)別容易被網(wǎng)絡(luò)黑客截獲和破解。本文介紹HTTPS的三種實(shí)現(xiàn)辦法。

辦法一靜態(tài)超鏈接

這是目前網(wǎng)站中使用得較多的辦法,也最簡(jiǎn)單。在要求使用SSL舉行傳輸?shù)腤eb網(wǎng)頁(yè)鏈接中直截了當(dāng)標(biāo)明使用HTTPS協(xié)議,以下是指向需要使用SSL的網(wǎng)頁(yè)的超鏈接:

SSL例子

需要講明的是,在網(wǎng)頁(yè)里的超鏈接假如使用相對(duì)路徑的話(huà),其默認(rèn)啟用協(xié)議與引用該超鏈接的網(wǎng)頁(yè)或資源的傳輸協(xié)議相同,例如在某超鏈接“HTTPS://00/ok/login.jps”的網(wǎng)頁(yè)中包含如下兩個(gè)超鏈接:

SSL鏈接

非SSL鏈接

這么,第一具鏈接使用與“HTTPS://00/ok/login.jsp”相同的傳輸協(xié)議HTTPS,第二個(gè)鏈接使用本身所標(biāo)識(shí)的協(xié)議HTTP。

使用靜態(tài)超鏈接的好處是容易實(shí)現(xiàn),別需要額外開(kāi)辟。但是,它卻別容易維護(hù)治理;因?yàn)樵谝痪邚氐资褂肏TTP協(xié)議拜訪(fǎng)的Web應(yīng)用里,每個(gè)資源都存放在該應(yīng)用特定根名目下的各個(gè)子名目里,資源的鏈接路徑都使用相對(duì)路徑,如此做是為了方便應(yīng)用的遷移同時(shí)易于治理。但如果該應(yīng)用的某些資源要用到HTTPS協(xié)議,引用的鏈接就必須使用完整的路徑,因此當(dāng)應(yīng)用遷移或需要更改URL中所涉及的任何部分如:域名、名目、文件名等,維護(hù)者都需要對(duì)每個(gè)超鏈接修改,工作量之大可想而知。再者,假如客戶(hù)在掃瞄器地址欄里手工輸入HTTPS協(xié)議的資源,這么所有敏感機(jī)密數(shù)據(jù)在傳輸中就得別到愛(ài)護(hù),非常容易被黑客截獲和篡改!

辦法二資源拜訪(fǎng)限制

為了愛(ài)護(hù)Web應(yīng)用中的敏感數(shù)據(jù),防止資源的非法拜訪(fǎng)和保證傳輸?shù)陌踩?,JavaServlet2.2規(guī)范定義了安全約束(Security-Constraint)元件,它用于指定一具或多個(gè)Web資源集的安全約束條件;用戶(hù)數(shù)據(jù)約束(User-Data-Constraint)元件是安全約束元件的子類(lèi),它用于指定在客戶(hù)端和容器之間傳輸?shù)臄?shù)據(jù)是怎么被愛(ài)護(hù)的。用戶(hù)數(shù)據(jù)約束元件還包括了傳輸保證(Transport-Guarantee)元件,它規(guī)定了客戶(hù)機(jī)和服務(wù)器之間的通信必須是以下三種模式之一:None、Integral、Confidential。None表示被指定的Web資源別需要任何傳輸保證;Integral表示客戶(hù)機(jī)與服務(wù)器之間傳送的數(shù)據(jù)在傳送過(guò)程中不可能被篡改;Confidential表示數(shù)據(jù)在傳送過(guò)程中被加密。大多數(shù)事情下,Integral或Confidential是使用SSL實(shí)現(xiàn)。

這個(gè)地方以BEA的WebLogicServer6.1為例介紹事實(shí)上現(xiàn)辦法,WebLogic是一具性能卓越的J2EE服務(wù)器,它能夠?qū)λ卫淼腤eb資源,包括EJB、JSP、Servlet應(yīng)用程序設(shè)置拜訪(fǎng)操縱條款。假設(shè)某個(gè)應(yīng)用建立在

WeblogicServer里的/mywebAPP名目下,其中一部分Servlets、JSPs要求使用SSL傳輸,這么可將它們都放在/mywebAPP/sslsource/名目里,然后編輯/secureAPP/Web-INF/web.xml文件,經(jīng)過(guò)對(duì)web.xml的設(shè)置可達(dá)到對(duì)Web用戶(hù)實(shí)現(xiàn)拜訪(fǎng)操縱。

當(dāng)Web用戶(hù)試圖經(jīng)過(guò)HTTP拜訪(fǎng)/sslsource名目下的資源時(shí),WeblogicServer就會(huì)查找web.xml里的拜訪(fǎng)約束定義,返回提示信息:NeedSSLconnectiontoaccessthisresource。資源拜訪(fǎng)限制與靜態(tài)超鏈接結(jié)合使用,別僅繼承了靜態(tài)超鏈接辦法的簡(jiǎn)單易用性,而且有效愛(ài)護(hù)了敏感資源數(shù)據(jù)。但是,如此就會(huì)存在一具咨詢(xún)題:如果Web客戶(hù)使用HTTP協(xié)議拜訪(fǎng)需要使用SSL的網(wǎng)絡(luò)資源時(shí)看到彈出的提示信息:NeedSSLconnectiontoaccessthisresource,大部分人也許都別懂應(yīng)該用HTTPS去拜訪(fǎng)該網(wǎng)頁(yè),造成的后果是用戶(hù)會(huì)放棄拜訪(fǎng)該網(wǎng)頁(yè),這是Web應(yīng)用服務(wù)提供商別情愿看到的情況。

辦法三鏈接重定向

綜觀目前商業(yè)網(wǎng)站資源數(shù)據(jù)的交互拜訪(fǎng),要求嚴(yán)格加密傳輸?shù)臄?shù)據(jù)只占其中一小部分,也算是講在一具具體Web應(yīng)用中需要使用SSL的服務(wù)程序只占整體的一小部分。這么,我們能夠從應(yīng)用開(kāi)辟方面思考解決辦法,對(duì)需要使用HTTPS協(xié)議的那部分JSPs、Servlets或EJBs舉行處理,使程序本身在接收到拜訪(fǎng)請(qǐng)求時(shí)首先推斷該請(qǐng)求使用的協(xié)議是否符合本程序的要求,即來(lái)訪(fǎng)請(qǐng)求是否使用HTTPS協(xié)議,假如別是就將其拜訪(fǎng)協(xié)議重定向?yàn)镠TTPS,如此就幸免了客戶(hù)使用HTTP協(xié)議拜訪(fǎng)要求使用HTTPS協(xié)議的Web資源時(shí),看到錯(cuò)誤提示信息無(wú)所適從的事情,這些處理對(duì)Web客戶(hù)來(lái)講是透明的。

實(shí)現(xiàn)思想是:首先創(chuàng)建一具類(lèi),該類(lèi)辦法能夠?qū)崿F(xiàn)自動(dòng)引導(dǎo)Web客戶(hù)的拜訪(fǎng)請(qǐng)求使用HTTPS協(xié)議,每個(gè)要求使用SSL舉行傳輸?shù)腟ervlets或JSPs在程序開(kāi)始時(shí)調(diào)用它舉行協(xié)議重定向,最終才舉行數(shù)據(jù)應(yīng)用處理。

J2EE提供了兩種鏈接重定向機(jī)制。第一種機(jī)制是RequestDispatcher接口里的forward()辦法。使用MVC(Model-View-Controller)機(jī)制的Web應(yīng)用通常都使用那個(gè)辦法從Servlet轉(zhuǎn)移請(qǐng)求到JSP。但這種轉(zhuǎn)向只能是同種協(xié)議間的轉(zhuǎn)向,并別能重定向到別同的協(xié)議。第二種機(jī)制是使用HTTPServletReponse接口里的sendRedirect()辦法,它能使用任何協(xié)議重定向到任何URL,例如:

BeSslResponse.sendRedirect(“HTTPS://00/order”);

此外,我們還需使用到JavaServletAPI中的兩個(gè)辦法:ServletRequest接口中的getScheme(),它用于獵取拜訪(fǎng)請(qǐng)求使用的傳輸協(xié)議;HTTPUtils類(lèi)中的getRequestUrl(),它用于獵取拜訪(fǎng)請(qǐng)求的URL,要注意的是該辦法在Servlet2.3中已被移到HTTPServletRequest接口。

以下是實(shí)現(xiàn)協(xié)議重定向的基本步驟:

1.獵取拜訪(fǎng)的請(qǐng)求所使用的

協(xié)議;

2.假如請(qǐng)求協(xié)議符合被拜訪(fǎng)的Servlet所要求的協(xié)議,就講明差不多使用HTTPS協(xié)議了,別需做任何處理;

3.假如別符合,使用Servlet所要求的協(xié)議(HTTPS)重定向到相同的URL。

例如,某Web用戶(hù)使用HTTP協(xié)議拜訪(fǎng)要求使用HTTPS協(xié)議的資源BeSslServlet,敲入“URL:HTTP://00/BeSslServlet”,在執(zhí)行BeSslServlet時(shí)首先使用ProcessSslServlet.processSsl()重定向到HTTPS://00/BeSslServlet,然后BeSslServlet與客戶(hù)掃瞄器之間就經(jīng)過(guò)HTTPS協(xié)議舉行數(shù)據(jù)傳輸。

以上介紹的僅是最簡(jiǎn)單的例子,是為了對(duì)這種重定向的辦法有個(gè)初步的認(rèn)識(shí)。如果想真正在Web應(yīng)用中實(shí)現(xiàn),還必須思考如下幾個(gè)咨詢(xún)題:

●在Web應(yīng)用中常常會(huì)用到GET或Post辦法,拜訪(fǎng)請(qǐng)求的URL中就會(huì)帶上一些查詢(xún)字串,這些字串是使用getRequesUrl()時(shí)獵取別到的,而且在重定向之后會(huì)丟失,因此必須在重定向之前將它們加入到新的URL里。我們能夠使用request.getQueryString()來(lái)獵取GET的查詢(xún)字串,關(guān)于Post的Request參數(shù),能夠把它們轉(zhuǎn)換成查詢(xún)串再舉行處理。

●某些Web應(yīng)用請(qǐng)求中會(huì)使用對(duì)象作為其屬性,必須在重定向之前將這些屬性保存在該Session中,以便重定向后使用。

●大多數(shù)掃瞄器會(huì)把對(duì)同一具主機(jī)的別同端口的拜訪(fǎng)當(dāng)作對(duì)別同的主機(jī)舉行拜訪(fǎng),分

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論