999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于PHP的WEB應用系統單點登錄的研究與實現

2010-07-12 08:18:36陳海虹
關鍵詞:數據庫用戶信息

陳海虹

(浙江海洋學院網絡中心,浙江舟山 316004)

如今不論是高校還是企事業單位,WEB應用系統日漸增多,每個應用系統都有自己的用戶管理機制和身份認證機制。用戶需要記住多個甚至十幾個系統的賬號和密碼,登錄許多應用系統才能完成他們的日常工作。所以,需要在多個WEB應用系統中實施單點登錄方案,用戶只需要登錄1次就可以訪問所有相互信任的應用系統,并且在系統之間切換時,將不再受到訪問限制。目前實現單點登錄的技術主要有2種:一種是采用1個具有單點登錄功能的協議來完成;一種是利用業界常用的“偽登錄”技術。采用具有單點登錄功能的協議來完成的一個典型代表就是使用Kerberos協議,Kerberos協議提供了采用票據來訪問目標系統,這也是目前采用的一種比較流行的單點登錄技術,它具有更安全、更具彈性、更高效率的優點[1]。但是也有一定的不足,它需要對目標系統或目標服務進行協議化,同時需要對應用系統做出適當的改造,這就限制了它對一些不愿開放的應用系統的應用。因為一些應用系統的結構和接口不開放,造成了第三方無法與其對接,另外,還有一些企業也不愿意對系統進行修改。“偽登錄”技術,就是通過一些腳本自動為用戶輸入賬號和密碼,屏蔽用戶登錄目標系統,這種技術體現了與應用系統的無關性,例如與應用系統的平臺、開發環境、結構、編程語言以及腳本,所以應用系統無需做任何修改。基于PHP的WEB應用系統單點登錄就是根據“偽登錄”技術原理,通過PHP語言并結合MySQL數據庫來實現單點登錄功能。

1 開發技術簡述

1.1 PHP和MYSQL技術介紹

PHP語言是一種廣泛用于Web開發并可以嵌入HTML的多用途的腳本語言。PHP能運行在包括Windows、Linux等在內的絕大多數操作系統環境中,并支持Oracle、Sybase、MySQL、ODBC等在內的大多數常見數據庫,具有很好的跨平臺性;PHP是開源軟件,代碼在許多工程師手中進行了檢測,同時它與Apache編譯在一起的方式也可以讓它具有靈活的安全設定,具有了公認的安全性能;PHP還具有占用系統資源少、代碼執行速度快等優勢。

MySQL是個真正的多用戶、多線程SQL數據庫。它是完全免費的,它的平臺無關性使其能在多個操作系統上運行,其中包括UNIX、Linux、Solaris、SunOS、FreeBSD等,它還具有文件體積小、支持多線程、優化SQL查詢算法、執行速度快等優勢。目前MySQL被廣泛地應用在Internet上的中小型網站和各種中小型數據庫管理工作,如財務、行政、金融、經濟、統計和審計等領域。

1.2 HTTP協議簡介[2]

目前大部分WEB應用系統的身份認證技術在應用層上是基于HTTP協議,HTTP協議采用了請求/響應模型。通常,由HTTP客戶端發起一個請求,建立一個到服務器指定端口的TCP連接。HTTP服務器則在那個端口監聽客戶端發送過來的請求,一旦收到請求,服務器向客戶端發回一個狀態行,比如“HTTP/1.1 200 OK”,和響應的消息。HTTP請求報文格式為:請求行-通用信息頭-請求頭-實體頭-報文主體;響應報文格式為:狀態行-通用信息頭-響應頭-實體頭-報文主體。

基于HTTP協議的客戶端訪問服務器包括4個過程,分別是建立TCP套接字連接、發送HTTP請求報文、接收HTTP應答報文和關閉TCP套接字連接。HTTP協議的請求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。這里介紹最常用的GET方法和POST方法。當客戶端要從服務器中讀取文檔時,使用GET方法。GET方法要求服務器將URL定位的資源放在響應報文的數據部分,回送給客戶端。使用GET方法時,請求參數和對應的值附加在URL后面,利用一個問號代表URL的結尾與請求參數的開始,傳遞參數長度受限制。當客戶端給服務器提供信息較多時可以使用POST方法。POST方法將請求參數封裝在HTTP請求數據中,以名稱/值的形式出現,可以傳輸大量數據。

2 單點登錄功能總體設計

2.1 庫表結構設計

每個WEB應用系統幾乎都需要數據庫來存儲用戶的身份認證信息和其他的數據信息,但是彼此數據庫的類型、庫表結構、字段值、加密方式都不同,無法直接在各應用系統的數據庫中讀出和操作用戶身份認證信息。所以,需要一個獨立的數據庫來單獨存儲用戶在各應用系統的身份認證信息。

本系統采用MySQL數據庫。數據結構主要包含3張表,分別是:sso_app_info、sso_app_props、sso_login_info。

sso_app_info表存放:PHP模擬HTTP客戶端登錄各應用系統用到的數據信息、允許用戶輸入賬號密碼的表單元素名、用戶身份驗證失敗應用系統返回的信息。sso_app_props表存放:允許用戶輸入除賬號密碼外其它表單元素名,這張表中的數據主要用來構建動態或靜態表單。sso_login_info表存放:用戶成功登錄各應用系統的身份認證信息。圖1是這個數據結構的數據庫模型圖。

圖1 數據庫模型圖Fig.1 Database illustration of model

2.2 總體設計思路

單點登錄主要與應用系統和用戶有關,所以首先分配三個變量標識應用系統和用戶,它們分別是應用系統的ID號、應用系統名稱、用戶ID號,它們的值分別與表sso_app_info中的uid、name字段和表sso_login_info中的userid字段相對應。單點登錄模型依據這3個值判斷哪個用戶登錄到哪個應用系統。

如果數據庫表sso_login_info中有符合這些變量的記錄,則說明用戶曾成功登錄過這個應用系統,取出庫中數據,以URL形式或動態表單形式傳遞登錄數據并自動登錄到WEB應用系統。

如果沒有記錄,說明用戶首次登錄這個應用系統,由單點登錄系統生成或直接調用靜態表單頁面,讓用戶初次完成應用系統認證信息的輸入過程。并用PHP模擬瀏覽器客戶端傳遞用戶輸入的認證信息,通過這個方法檢查用戶輸入的認證信息是否能通過WEB應用系統服務器的認證。

如果用戶輸入的認證信息能通過WEB應用系統服務器的認證則將認證信息存入庫中,并借助URL形式或者動態表單形式傳遞認證信息并自動登錄應用系統,否則輸出錯誤信息。程序流程圖如圖2所示。

圖2 總體設計程序流程圖Fig.2 The flowchart of system design

3 關鍵技術分析

3.1 PHP模擬瀏覽器登錄應用系統服務器

用戶輸入賬號、密碼等登錄信息后,應用系統服務器需要判斷是否通過此認證。可用PHP模擬HTTP客戶端,發送認證信息及接收反饋信息,從反饋信息中判斷認證是否被通過。PHP模擬HTTP客戶端的程序流程圖如圖3所示。fsockopen函數可以打開指定網域的TCP套接字連接或IP地址的TCP套接字連接,然后傳回1個文件指標,這可以和fwrite等函數一起使用。相關代碼[3]如下:

圖3 PHP模擬瀏覽器登入流程圖Fig.3 The flowchart about using php to mimic browser logining

3.2 生成具有靜態或動態表單的網頁,模擬應用系統登錄界面

表單是一個包含表單元素的區域,表單元素是允許用戶在表單中(比如文本域、下拉列表、單選框、復選框等等)輸入信息的元素。

為了獲取不同應用系統中不同用戶的登錄信息,需要預先生成供用戶填寫的模擬應用系統登錄界面的表單。不同的應用系統具有不同的表單元素,可以先分析各應用系統的表單元素并存入數據庫中,然后利用PHP語言加載數據庫中的數據生成具有表單元素的登錄頁面,為了提高速度,再將動態頁面生成靜態頁面。相關代碼如下:

代替用戶輸入認證信息自動登入WEB應用系統的步驟中也用到了表單。

3.3提交認證信息的請求方法

為了達到程序的強健性,將HTTP協議中的GET和POST方法相結合來提交請求認證信息,因為有的系統不支持跨域POST方法。GET方法將認證請求信息放在URL中傳遞給系統服務器,POST方法是將認證請求信息作為表單元素提交給系統服務器。相關代碼如下:

4 結束語

依據“偽登錄”技術原理采用PHP腳本語言自動為用戶輸入賬號和密碼,模擬用戶登錄應用系統的單點登錄模型,使用戶只須完成最初的登錄過程就可以直接訪問應用系統,無須每次訪問一個應用資源都登錄1次,大大提高了工作效率。這個模型與應用系統無關,應用系統無須修改就可使用,具有高度擴展性,同時,即使單點登錄系統失效,應用系統仍可以正常使用,容錯性好。需要改進的地方是,它沒有將存儲認證信息的數據庫與其他應用系統的數據庫同步起來。

[1]朱 嬋.基于Kerberos票據的Web單點登錄設計[J].現代計算機,2007(2):76-77.

[2]STEVENS W R.TCP/IP詳解·卷3:TCP事務協議、HTTP、NNTP和UNIX域協議[M].北京:機械工業出版社,2002.

[3]WILLISON.httpClient-a PHP Web Client Class[CP/OL].[2003-04-06].http://scripts.incutio.com/httpclient/index.php.

猜你喜歡
數據庫用戶信息
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: 亚洲欧美日韩另类在线一| 亚洲欧美日本国产综合在线| 91精品网站| 国外欧美一区另类中文字幕| 午夜天堂视频| 国产精品主播| 亚洲AV无码久久天堂| 国产区人妖精品人妖精品视频| 亚洲成人精品在线| 国产第一页第二页| 欧美区国产区| 国产97色在线| 亚洲丝袜中文字幕| 国产偷国产偷在线高清| 91视频99| av色爱 天堂网| 一级全免费视频播放| 国产欧美视频在线| 5555国产在线观看| 国产精品原创不卡在线| 久久99精品国产麻豆宅宅| 婷婷六月激情综合一区| 亚洲人成亚洲精品| 国产成人精品免费av| 91无码视频在线观看| 久久亚洲国产一区二区| 中文字幕啪啪| 国产一级α片| 国产亚洲男人的天堂在线观看| 国产91小视频| 青草娱乐极品免费视频| 亚洲精品自在线拍| 午夜日本永久乱码免费播放片| 制服丝袜一区二区三区在线| AV不卡无码免费一区二区三区| 天天综合网站| 国产成年女人特黄特色毛片免| 热思思久久免费视频| 国产福利一区二区在线观看| 伊人精品视频免费在线| 最新国产网站| 天堂在线www网亚洲| 婷婷99视频精品全部在线观看| 久久伊人久久亚洲综合| 伊在人亚洲香蕉精品播放| 亚洲人在线| 亚洲综合色区在线播放2019| 国产jizz| 无码高潮喷水专区久久| 亚洲欧美日韩精品专区| 91国内在线视频| 波多野结衣一二三| 日本黄网在线观看| 国产美女在线观看| 亚洲人成成无码网WWW| 日韩av无码DVD| 亚洲自偷自拍另类小说| 美女毛片在线| 美女扒开下面流白浆在线试听 | 国产精品天干天干在线观看 | 国内精品小视频在线| 在线无码私拍| 国产91丝袜| 亚洲国产日韩在线观看| 91成人试看福利体验区| 国产女主播一区| 日韩麻豆小视频| 婷婷丁香色| 思思99热精品在线| 亚洲香蕉久久| 免费一级成人毛片| 尤物亚洲最大AV无码网站| 五月天香蕉视频国产亚| 五月天天天色| 亚洲浓毛av| 国产主播福利在线观看| 成人韩免费网站| 91探花国产综合在线精品| 2020国产免费久久精品99| 色国产视频| 欧美精品成人一区二区在线观看| 日韩欧美国产中文|