一、序言
現在很多**對使用者的訪問許可權進行了嚴格的限制,使用者在訪問某些資源時需要給出「使用者名稱/口令"來確認自己的身份。目 前,使用最多的身份認證方法是將使用者名稱、口令存放在乙個資料庫中,當使用者要訪問某些受限制的資源時,要在某乙個頁面中輸入使用者名稱和口令,程式將使用者輸入的 使用者名稱和口令與資料庫存放的「使用者名稱/口令"相比較,如果輸入正確,則正常使用資源,否則,資源訪問被拒絕。但是,這種身份認證方式有兩個很大的問題,一 方面只要使用者有一次身份認證成功,就可以記錄下受限資源的鏈結位址,在下一次訪問時只需輸入該位址,而無需通過身份認證過程就可訪問受限資源;另一方面用 戶可以在受限制的資源的超級鏈結處點右鍵,選擇「屬性",就可以檢視到受限制資源的鏈結位址,直接訪問該位址,使身份認證不能達到預期的效果。
apache可以很好地解決上述問題。apache是建立www**的軟體,可執行於linux、 unix和windows作業系統下。下面就以linux為例介紹apache是如何完成使用者身份認證功能的。
二、基本原理
apache實現身份認證的基本原理是:當系統管理員啟動身份認證功能後,可以在要限制的目錄中新增乙個預設名「.htaccess"的文 件。當使用者訪問該路徑下的資源時,系統就會彈出乙個對話方塊,要求使用者輸入「使用者名稱/口令"。也就是說,它的身份認證功能不是人為由程式控制,而是由系統直 接控制的。這樣就避免了使用者記錄需要認證的資源的超級鏈結,不會下次直接訪問資源。
身份認證的方法有多種,其中包括 apache中預編譯好的mod—auth模組和apache自帶的但未編譯好的模組,如:mod—auth—dbm模組、mod—auth—db模組、 mod—auth—msql模組。另外還有一些第三方開發的模組,如:mysql資料庫中使用的mod—auth—mysql模組,他們都可以對一組使用者 或某個使用者進行限制。
三、具體實現
下面主要介紹mod—auth模組和mod—auth— mysql模組的使用。但無論採取何種認證方式,都要先對apache做一些設定:在配置檔案access.conf中作如下的設定:
accessfilename . htaccess
alloerride all
(一) mod—auth模組完成身份認證功能,它主要是把允許訪問資源的組名、使用者名稱、使用者口令以文字檔案的方式存放,具體方法是:
1.編輯認證用的組檔案:主要用於存放可以訪問受限制的資源的組名以及其中的使用者,用vi編輯組檔案.htgroup如下
ptisi : lkch
存放在 /sur/local/apache/secrets/.htgroup路徑下,其中ptisi是組名,lkch是組中的使用者名稱。
2.建立使用者檔案:主要用於存放某一組中的使用者名稱和口令
htpasswd -c /usr/local/apache/secrets/.htpasswd lkch
注:htpasswd是apache提供 用於實現認證功能的程式,-c表示產生新的.htpasswd檔案,如果存在同名舊檔案,則覆蓋舊檔案。該程式將詢問口令,鍵入「hello"然後重新確 認口令。
3.在要限制的資源的目錄內編輯 .htaccess檔案
authname ″this is a test″
authtype basic
authuserfile /usr/local/apache/secrets/.htpasswd
authgroupfile /usr/local/apache/secrets/.htgroup
repuire group ptisi
注:引數require group 指定哪些組的使用者可以訪問認證資源,這樣,當再次訪問需要認證的資源存在的目錄時,系統就會彈出對話方塊,要求輸入「使用者名稱/口令"。
(二)mod—auth—mysql模組完成身份認證功能,由於apache + php + mysql已經被許多**的建設者當作是建設中小型網路資料庫的**組合,因而mod—auth—mysql的功能也就顯得尤其強大。它主要是把允許訪問 資源的組名、使用者名稱、使用者口令以文字檔案的方式存放。
1.建立認證用的資料庫
2.建立認證用的表,並插入一行資料
3.配置apache
在http.cont中加入 auth—mysql—info
其中username和 password是mysql資料庫使用者的使用者名稱和口令。
4.建立 .htaccess檔案
最後這句話表示認證時口令的形式,分別表示不加密、des加密方式和mysql的password()加密。
使用這種認證方法的最大優點是php提供了大量對mysql資料庫進行操作的函式,可以方便地進行遠端理。
**
身份管理對企業的意義
身份管理工作,我從2007年入行。最初對這個東西很新奇,通過一些配置就把多個應用系統連線起來,先別人看起來,這就是乙個系統。但是一年以後,我就對這個東西比較煩了。因為這個東西,從客戶的反映來看,他們覺得是可有可無的。一般的使用者,還覺得不高興 為什麼要改變我以前的訪問習慣?從2008年開始,我就有點...
如何對身份證的籍貫進行驗證
我們在進行各種程式設計設計的時候,經常會遇到需要人員登記,但是對 人員登記的資訊進行驗證的手段卻又非常的沒有效果,因為我們很難判斷乙個人他的資訊是否是真實的!我們只是盡可能的去檢視一下他的資訊。下面我們就來看看對身份證的一些簡單的校as驗 1 2 3 4 5 xx x xx x 這個是沒有公升位以前...
jquery對身份證號碼的校驗
function checkidcard idcode 獲取餘數 var resisue num 11 var last no check code resisue 格式的正則 正則思路 第一位不可能是0 第二位到第六位可以是0 9 第七位到第十位是年份,所以七八位為19或者20 十一位和十二位是月...