程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> 針對 Apache 2.x 的 MySQL 用戶認證模塊的安裝

針對 Apache 2.x 的 MySQL 用戶認證模塊的安裝

編輯:關於MYSQL數據庫

  前面談到 Samba 服務器的 MySQL 用戶認證,實際上我老早就寫過 apache 針對 MySQL 的認證。不過以前只是測試而已,沒有實際使用。前文提到知識管理,實際上在公司內部我們運行著一個基於 pLog 的博客系統。原先的系統沒有發布到互聯網,後來為了能讓公司異地的各分支機構也能使用該博客系統,所以,決定發布到互聯網。為了最小程度的降低對博客系統的 Hack ,所以我決定采用外掛的 mod_auth_MySQL 模塊來實現用戶認證,從而降低公司內部系統暴露給非授權用戶的風險。

  在這次安裝中,才發現原來 mod_auth_MySQL 有好幾種版本,而且文檔幾乎都是殘缺不全的。本文下載的程序來自 sourceforge.net (sf.Net)

  http://modauthMySQL.sourceforge.Net/

  目前的版本為 2.9.0 ,下載後,建立目錄 mod_auth_MySQL ,然後進入該目錄解壓。(不要直接在 /usr/local/src 下解壓) ,根據 BUILD 文件的指示,安裝步驟如下:

apxs -c -lmysqlclIEnt -lm -lz mod_auth_MySQL.c
apxs -i mod_auth_MySQL.la

  然後把下面這行加入 httpd.conf

  LoadModule mysql_auth_module modules/mod_auth_MySQL.so

  實際上編譯和安裝並不困難,配置才是比較大的挑戰,特別是要已經現有的用戶表結合起來。我的 plog 數據庫的用戶表是 plog_users ,我設置的配置如下:

  <IfModule mod_auth_MySQL.c>

  <Location />

  AuthType Basic

  # 連接數據庫的主機地址,一般用本地連接,所以為 localhost

  AuthMySQLHost localhost

  AuthMySQLPort nnnn

  # 數據庫的名字

  AuthMySQLDB plog

  # 連接數據庫的用戶?

  AuthMySQLUser plogdb_user

  # 連接數據庫的口令

AuthMySQLPassword passWord
# none: not encrypted (plain text)
# crypt: UNIX crypt() encryption
# scrambled: MySQL PASSWord encryption
# md5: MD5 hashing
# aes: Advanced Encryption Standard (AES) encryption
# sha1: Secure Hash Algorihm (SHA1)`
AuthMySQLPwEncryption md5
AuthMySQLEnable On
AuthMySQLUserTable plog_users
AuthMySQLNameFIEld user
AuthMySQLPasswordFIEld passWord
AuthMySQLGroupTable plog_users
AuthMySQLGroupFIEld user_group
</Location>
</IfModule>

  從以上配置可以知道,這個模塊實際上對用戶表沒有特別的要求,只要能找到 用戶名和對應的口令即可,如果需要對一個組作驗證,那麼需要 group 那個列。

  由於公司內部所有的用戶都具有相同的組,所以,在驗證時一般采用組用戶來驗證,因此要在 plog_user 表添加列: user_group ,並把所有行的 user_group 列 update 為某固定值,例如 mygroup 。

  在這裡 groupTable 和 UserTable 是同一張表,如果需要一個用戶屬於多個 group ,那麼必須另外建立 group 表。

  做好以上工作後,在需要加密的目錄添加 .htAccess 文件如下:

  Authname "請用管理博客的口令和密碼登陸"

  Authtype Basic

  Require group mygroup

  這樣一個外掛的驗證系統部署完畢,這種部署對於電子商務應用中,多個不同應用的用戶表整合具有很好的效果。修改的代碼不多。

  修改用戶口令可以用 PHP 的 $_SERVER["PHP_AUTH_USER"] 來判斷用戶名,然後作相應的判斷。

  采用這種認證措施後,用戶的浏覽記錄都能在 apache 日志中保留下來,利用 awstats 等日志統計軟件,都可以查看到用戶的浏覽量,使公司內部的知識流向都能清楚地查看到。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved