• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于Cookie的同域單點(diǎn)登錄的實(shí)現(xiàn)

      2017-06-10 04:35:01戚利娜
      科技創(chuàng)新與應(yīng)用 2017年16期

      摘 要:不同的信息系統(tǒng)為保證安全性,須用戶重復(fù)輸入用戶名和密碼進(jìn)行驗(yàn)證。上述操作過程繁瑣,浪費(fèi)時(shí)間,嚴(yán)重影響用戶體驗(yàn)。而單點(diǎn)登錄技術(shù)通過“一次登錄,多方認(rèn)證”的方案可解決多系統(tǒng)重復(fù)驗(yàn)證的問題。文章介紹了單點(diǎn)登錄的定義、分類標(biāo)準(zhǔn),通過利用Cookie的特性設(shè)計(jì)了基于Cookie的同域單點(diǎn)登錄的實(shí)現(xiàn)方案和實(shí)現(xiàn)流程,并以同域單點(diǎn)登錄為具體案例編寫代碼實(shí)現(xiàn)了該功能,最后就基于Cookie同域單點(diǎn)登錄的實(shí)現(xiàn)方案中存在的安全隱患進(jìn)行了討論,并針對性地提出了具體的改進(jìn)措施。文章從方案的設(shè)計(jì)以及方案的實(shí)現(xiàn)都做了相應(yīng)的論證,因此具有一定的參考價(jià)值。

      關(guān)鍵詞:Cookie;單點(diǎn)登錄;同域登錄

      1 概述

      隨著信息時(shí)代的來臨,多重樣式的信息系統(tǒng)解決了用戶的信息資源問題,提高了個(gè)人和企業(yè)的效率。信息系統(tǒng)確保用戶信息資源的隱私,依賴登錄認(rèn)證流程。即,只有用戶名和密碼等通過信息系統(tǒng)的認(rèn)證流程,用戶才能合法訪問系統(tǒng)管理的信息資源。但是,不同的信息系統(tǒng)具有獨(dú)立的登錄認(rèn)證系統(tǒng)。因此,面對不同的信息系統(tǒng),用戶必須多次輸入驗(yàn)證信息,重復(fù)執(zhí)行驗(yàn)證過程。上述過程操作繁瑣,影響用戶體驗(yàn)。如何在保證用戶信息安全的情況下,降低驗(yàn)證次數(shù),達(dá)到一次登錄,多系統(tǒng)免登錄合法使用是面臨的問題。單點(diǎn)登錄技術(shù)解決了上述問題。

      所謂單點(diǎn)登錄,簡稱為SSO,即Single Sign On,具體含義是指在多個(gè)應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng),通過單點(diǎn)登錄,用戶能實(shí)現(xiàn)“一次登錄,多方認(rèn)證”。單點(diǎn)登錄具有多種分類標(biāo)準(zhǔn):(1)按相互信任系統(tǒng)的訪問地址區(qū)分為同域單點(diǎn)登錄、同父域單點(diǎn)登錄以及跨域單點(diǎn)登錄;(2)按實(shí)現(xiàn)單點(diǎn)登錄的技術(shù)分為基于LTPA、基于表單以及基于Cookie。

      因?yàn)榛贚TPA單點(diǎn)登錄只能適用于IBM系列產(chǎn)品,具有一定的局限性,而基于Cookie的單點(diǎn)登錄具有集成度較好、實(shí)現(xiàn)簡單、容易擴(kuò)展,支持分布式部署、支持跨平臺等優(yōu)點(diǎn)。因此本文就討論基于Cookie的同域單點(diǎn)登錄的設(shè)計(jì)與實(shí)現(xiàn)。

      2 Cookie概述

      Cookie是客戶端瀏覽器訪問服務(wù)器數(shù)據(jù)時(shí),服務(wù)器保存在客戶端的一段文本信息,主要是用于對客戶端信息進(jìn)行標(biāo)記,從而區(qū)分不同的客戶端瀏覽器。

      Cookie采取健、值的形式保存。主要的屬性有Cookie名稱、Cookie有效期、域名、路徑等。Cookie的有效期指明Cookie存在的期限;而域名則明確了獲取Cookie的Internet域;路徑定義獲取Cookie的路徑范圍。本文特別要提到的是域名屬性以及路徑屬性,因?yàn)檫@兩個(gè)屬性是單點(diǎn)登錄的關(guān)鍵。舉個(gè)例子,假設(shè)有兩個(gè)信息系統(tǒng)的服務(wù)器地址分別是http://domain1.com.cn、http://domain2.com.cn。根據(jù)單點(diǎn)登錄的定義可知,上述兩個(gè)主頁能實(shí)現(xiàn)“一次登錄,多次認(rèn)證”的關(guān)鍵是,上述兩個(gè)地址都能獲取共享的Cookie信息。而Cookie的域名屬性和路徑屬性就決定了訪問Cookie的地址范圍。因此,改變Cookie域名屬性和路徑屬性,則可能導(dǎo)致服務(wù)器無法獲取Cookie,從而影響認(rèn)證過程??傊?,域名屬性和路徑屬性對單點(diǎn)登錄而言,非常重要。

      Cookie的域名屬性用Domain表示,Cookie的路徑屬性用Path表示。具體而言,假設(shè)新建Cookie的名字為NewCookie,則NewCookie.Domain=“.com.cn”,NewCookie.Path=“/”,表示com.cn域下所有的路徑都可以訪問NewCookie。

      3 單點(diǎn)登錄的流程

      單點(diǎn)登錄的流程如下:當(dāng)用戶登錄系統(tǒng)時(shí),服務(wù)器認(rèn)證中心將遍歷用戶客戶端所有的Cookie,判斷是否存在與認(rèn)證中心一致的Cookie。如果存在,則跳過登錄過程,直接跳轉(zhuǎn)到系統(tǒng)主頁;否則跳轉(zhuǎn)到登錄頁面。用戶在登錄頁面輸入用戶名、密碼等信息后,服務(wù)器驗(yàn)證登錄信息是否符合要求,如果符合,則創(chuàng)建Cookie,標(biāo)記登錄信息,跳轉(zhuǎn)主頁。否則提示登錄信息錯(cuò)誤,重新登錄。具體如圖1所示。

      4 實(shí)現(xiàn)方案

      單點(diǎn)登錄系統(tǒng)由三部分構(gòu)成:

      (1)Web瀏覽器客戶端。用戶通過Web瀏覽器發(fā)送訪問服務(wù)器資源的請求,存儲Cookie,用戶通過Web瀏覽器通過表單提交用戶名、密碼等登錄信息到應(yīng)用服務(wù)器驗(yàn)證,接收應(yīng)用服務(wù)器的反饋。

      (2)應(yīng)用服務(wù)器。存儲用戶訪問的數(shù)據(jù)資源、用戶名、密碼,驗(yàn)證用戶提出的登錄信息是否合法,并跳轉(zhuǎn)頁面發(fā)送至瀏覽器。

      (3)認(rèn)證中心服務(wù)器。存儲Cookie信息,獲取Cookie,驗(yàn)證Cookie的有效性。

      本文在SSH框架基礎(chǔ)上實(shí)現(xiàn)同域單點(diǎn)登錄,具體代碼如下:

      后臺驗(yàn)證用戶名和密碼的類:

      public class SSOAction extends ActionSupport{

      public String doLogin(){

      boolean ok = SSOCheck.checkLogin(username,password)

      if( ok ){

      Cookie cookie = new Cookie(“ssocookie”,“sso”);

      cookie.setPath(“/”);

      HttpServletResponse response = ServeltActionContext.getResponse();

      response.addCookie(cookie);

      return SUCCESS;

      }

      }

      }

      public class SSOCheck{

      public static final String USERNAME=“user”;

      public static final String PASSWORD=“123”;

      //檢查用戶名和密碼的正確性

      public static boolean checkLogin(String username,String password){

      if( username.equals(USERNAME) && passsword.equals(PASSWORD) ){

      return true;

      }

      return false;

      }

      //驗(yàn)證Cookie的有效性

      public static bookean checkCookie(HttpServeltRequest request){

      Cookie[] cookie = request.getCookies();

      if( cookie != null ){

      for(Cookie cookie:cookies){

      if( cookie.getName.equals(“ssocookie”)

      && cookie.getValue().equals(“sso”)){

      return true;

      }

      }

      }

      return false;

      }

      }

      5 Cookie安全性分析

      根據(jù)前幾節(jié)的分析,單點(diǎn)登錄的關(guān)鍵是Cookie的驗(yàn)證。但是客戶端保存的Cookie是一段文本。客戶端對其內(nèi)容以及訪問權(quán)限并未加以限制,因此Cookie存在一定的安全隱患。例如,當(dāng)用戶成功登錄應(yīng)用服務(wù)器后,其他用戶來使用該客戶端。因?yàn)橄惹坝脩舻卿浐?,保存有合法的Cookie,則后來用戶無需登錄也可以成功訪問其他被信任的系統(tǒng)。此外,保存在客戶端的Cookie,保存的路徑不具有隱蔽性和訪問限制,并且Cookie內(nèi)容是以明文的保存,這些特點(diǎn)導(dǎo)致Cookie信息非常容易被非法用戶竊取,從而利用竊取的Cookie通過認(rèn)證,非法進(jìn)入系統(tǒng)主頁。

      解決上述安全隱患的辦法如下:(1)多用戶訪問客戶端;(2)對Cookie信息進(jìn)行加密保護(hù)。

      參考文獻(xiàn)

      [1]劉潤達(dá),諸云強(qiáng),宋佳,等.一種簡單跨域單點(diǎn)登錄系統(tǒng)的實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2007,2(27):288-291.

      [2]沈海波,洪帆.基于Cookie的跨域單點(diǎn)登錄認(rèn)證機(jī)制分析[J].計(jì)算機(jī)應(yīng)用與軟件,2006,12(23):48-51.

      [3]趙晉,楊旭董.基于CAS的單點(diǎn)登錄系統(tǒng)的研究與實(shí)現(xiàn)[J].軟件,2016,37(11):118-124.

      [4]SM2算法對基于cookie的跨域單點(diǎn)登錄的優(yōu)化方案[J].集寧師范學(xué)院學(xué)報(bào),2016,38(5):41-43.

      [5]王國偉,薛曼君.基于票據(jù)的跨域單點(diǎn)登錄[J].計(jì)算機(jī)應(yīng)用,

      2012,32(6):1766-1768.

      [6]董亮衛(wèi),汪文勇,黃鸝聲.支持單點(diǎn)登錄的統(tǒng)一資源管理體系研究[J].計(jì)算機(jī)應(yīng)用,2006,26(5):1146-1147.

      作者簡介:戚利娜(1981-),女,湖南邵陽人,學(xué)歷:本科,吉首大學(xué)張家界學(xué)院理工農(nóng)學(xué)部講師,研究方向:計(jì)算機(jī)應(yīng)用技術(shù)。

      建阳市| 板桥市| 大荔县| 长海县| 达州市| 鸡西市| 汝城县| 连江县| 苍南县| 丹棱县| 西丰县| 荥阳市| 四子王旗| 淄博市| 惠水县| 新晃| 苏州市| 梁平县| 安多县| 宜春市| 清远市| 崇礼县| 枣强县| 宁海县| 浦江县| 松江区| 汤原县| 沭阳县| 栖霞市| 郎溪县| 苍南县| 祥云县| 炉霍县| 宜黄县| 宿松县| 孟村| 纳雍县| 新泰市| 尤溪县| 祁阳县| 邹平县|