页面访问控制的3种方法

original link http://blog.51yip.com/apachenginx/1051.html

 

我们经常会看到这种现象,看下图

apache 页面访问控制

apache 页面访问控制

为什么要进行这样的控制呢,给不同的人看不同的东西,对信息进行保护,虽然这种保护比较低级,多多少少还是有点用的。

一,用htpasswd命令,产生权限控制文件

  1. [zhangy@BlackGhost test]$ htpasswd -c ./access tank  //生成一个密码文件 ,-c是新建一个文件  htpasswd -h可查看   
  2. New password:            //提示输入密码   
  3. Re-type new password:        //重复密码   
  4. Adding password for user tank   
  5. [zhangy@BlackGhost test]$ cat access    //查看一下密码文件   
  6. 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来进行配置

  1. listen 10004   
  2. NameVirtualHost *:10004   
  3. <VirtualHost *:10004>   
  4.  DocumentRoot "/home/zhangy/www/test"  
  5.  ServerName *:10004   
  6.  BandwidthModule On   
  7.  ForceBandWidthModule On   
  8.  Bandwidth all 1024000   
  9.  MinBandwidth all 50000   
  10.  LargeFileLimit * 500 50000   
  11.  MaxConnection all 2   
  12.   
  13.  ErrorLog "/home/zhangy/apache/blog.51yip.com.com-error.log"  
  14.  CustomLog "/home/zhangy/apache/blog.51yip.com-access.log" common   
  15. //看一下,下面的配置   
  16.  <Directory /home/zhangy/www/test>   
  17.  AuthType Basic   
  18.  AuthName "access test"  
  19.  AuthUserFile /home/zhangy/www/test/access   
  20.  Require valid-user   
  21.  </Directory>   
  22.   
  23. </VirtualHost>  
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>

2,我们可以利用.htaccess文件来进行控制

在test的根目录下面建一个.htaccess的文件

  1. [zhangy@BlackGhost test]$ vi .htaccess   //打开个文件 ,添加权限内容   
  2. [zhangy@BlackGhost test]$ cat .htaccess  //下面就是.htaccess的内容   
  3.  AuthType Basic   
  4.  AuthName "access test"  
  5.  AuthUserFile /home/zhangy/www/test/access   
  6.  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 Username   
  2. define('ADMIN_PASSWORD','tank');      // Admin Password   
  3.   
  4. //log check   
  5. if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP_AUTH_PW']) ||   
  6.  $_SERVER['PHP_AUTH_USER'] != ADMIN_USERNAME ||$_SERVER['PHP_AUTH_PW'] != ADMIN_PASSWORD) {   
  7.  Header("WWW-Authenticate: Basic realm=/"access test/"");   
  8.  Header("HTTP/1.0 401 Unauthorized");   
  9.   
  10.  echo <<<EOB   
  11.  <html><body>   
  12.  <h1>Rejected!</h1>   
  13.  <big>Wrong Username or Password!</big>   
  14.  </body></html>   
  15. EOB;   
  16.  exit;   
  17. }  
define('ADMIN_USERNAME','tank');     // Admin Username
define('ADMIN_PASSWORD','tank');      // Admin Password

//log check
if (!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的方法,其他语言我想也有。您可以把上面的这段代码写成一个文件,进行共用包涵,也可以把它封装到底基,这样不管访问什么页面,都可以进行访问控制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值