php頁面存取控制的3種方法

來源:互聯網
上載者:User
經常會看到這種現象,看

apache 頁面存取控制

為什麼要進行這樣的控制呢,給不同的人看不同的東西,對資訊進行保護,雖然這種保護比較低級,多多少少還是有點用的。

一,用htpasswd命令,產生許可權控制檔案

[zhangy@BlackGhost test]$ htpasswd -c ./access tank  //產生一個密碼檔案 ,-c是建立一個檔案  htpasswd -h可查看New password:            //提示輸入密碼Re-type new password:        //重複密碼Adding password for user tank  [zhangy@BlackGhost test]$ cat access    //查看一下密碼檔案tank:Uj5B3qIF/BNdI      //使用者名稱是明文的,密碼是加密的。
[zhangy@BlackGhost test]$ htpasswd -c ./access tank  //產生一個密碼檔案 ,-c是建立一個檔案  htpasswd -h可查看New password:            //提示輸入密碼Re-type new password:        //重複密碼Adding password for user tank[zhangy@BlackGhost test]$ cat access    //查看一下密碼檔案tank:Uj5B3qIF/BNdI      //使用者名稱是明文的,密碼是加密的。

到這兒密碼檔案是產生好了。

二,頁面存取控制方法

1,能過修改httpd.conf或者是httpd-vhosts.conf來進行配置

listen 10004  NameVirtualHost *:10004  <VirtualHost *:10004>   DocumentRoot "/home/zhangy/www/test" ServerName *:10004   BandwidthModule On   ForceBandWidthModule On   Bandwidth all 1024000   MinBandwidth all 50000   LargeFileLimit * 500 50000   MaxConnection all 2   ErrorLog "/home/zhangy/apache/blog.51yip.com.com-error.log" CustomLog "/home/zhangy/apache/blog.51yip.com-access.log" common  //看一下,下面的配置 <Directory /home/zhangy/www/test>   AuthType Basic   AuthName "access test" AuthUserFile /home/zhangy/www/test/access   Require valid-user   </Directory>  </VirtualHost>
listen 10004NameVirtualHost *:10004<VirtualHost *:10004> DocumentRoot "/home/zhangy/www/test" ServerName *:10004 BandwidthModule On ForceBandWidthModule On Bandwidth all 1024000 MinBandwidth all 50000 LargeFileLimit * 500 50000 MaxConnection all 2 ErrorLog "/home/zhangy/apache/blog.51yip.com.com-error.log" CustomLog "/home/zhangy/apache/blog.51yip.com-access.log" common//看一下,下面的配置 <Directory /home/zhangy/www/test> AuthType Basic AuthName "access test" AuthUserFile /home/zhangy/www/test/access Require valid-user </Directory></VirtualHost>

2,我們可以利用.htaccess檔案來進行控制

在test的根目錄下面建一個.htaccess的檔案

[zhangy@BlackGhost test]$ vi .htaccess   //開啟個檔案 ,添加許可權內容[zhangy@BlackGhost test]$ cat .htaccess  //下面就是.htaccess的內容 AuthType Basic   AuthName "access test" AuthUserFile /home/zhangy/www/test/access  Require valid-user
[zhangy@BlackGhost test]$ vi .htaccess   //開啟個檔案 ,添加許可權內容[zhangy@BlackGhost test]$ cat .htaccess  //下面就是.htaccess的內容 AuthType Basic AuthName "access test" AuthUserFile /home/zhangy/www/test/access Require valid-user

如果要給很多人設定不同的使用者名稱和密碼,使用AuthGroupFile設定選項比較方便

3,不用密碼檔案,也可以進行存取控制

  1. define('ADMIN_USERNAME','tank');     // Admin Usernamedefine('ADMIN_PASSWORD','tank');      // Admin Password//log checkif (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) ||   $_SERVER['PHP_AUTH_USER'] != ADMIN_USERNAME ||$_SERVER['PHP_AUTH_PW'] != ADMIN_PASSWORD) {   Header("WWW-Authenticate: Basic realm=/"access test/"");   Header("HTTP/1.0 401 Unauthorized");   echo <<<EOB   <html><body>   <h1>Rejected!</h1>   <big>Wrong Username or Password!</big>   </body></html>  EOB;   exit;  }
define('ADMIN_USERNAME','tank');     // Admin Usernamedefine('ADMIN_PASSWORD','tank');      // Admin Password//log checkif (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) || $_SERVER['PHP_AUTH_USER'] != ADMIN_USERNAME ||$_SERVER['PHP_AUTH_PW'] != ADMIN_PASSWORD) { Header("WWW-Authenticate: Basic realm=/"access test/""); Header("HTTP/1.0 401 Unauthorized"); echo <<<EOB <html><body> <h1>Rejected!</h1> <big>Wrong Username or Password!</big> </body></html>EOB; exit;}

上面用的是php的方法,其他語言我想也有。您可以把上面的這段代碼寫成一個檔案,進行共用包涵,也可以把它封裝到底基,這樣不管訪問什麼頁面,都可以進行存取控制。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.