Apache下,用.htaccess对目录设置密码保护
通常情况下,网站上总是会有那么一两个目录是不能任意让别人访问的!这时候,我们可以通对对htaccess进行设置,以实现访问该目录时,要求输入自定的用户名和密码。
Apache对网站目录加密是用.htaccess文件进行设置,在.htaccess文件中写入:
AuthName xxx
AuthType basic
AuthUserFile /root/auth.txt
require valid-user
把该.htaccess文件放到要保护的目录下。
再生成相应的密码文件:auth.txt(该文件名可以随意,不过必须与.htaccess中相同):
# htpasswd -bcds auth.txt someusername someuserpass
这样就会在当前目录下生成带有用户名为someusername,密码为someuserpass的auth.txt文件。
这里有点需要注意的地方,就是我们的密码文件,虽然密码是加密的,即使被下载了,也不能知道真正的密码!但是,被人下载密码文件,总是会感到不安全的。所以,建议是将密码文件auth.txt放到网站根目录外,比如放在/root/下,这样就安全多了。
示例:http://as3.brite.biz/mt/
----------------------------------------------
Nginx网站目录加密
Nginx网站目录加密是通过nginx.conf文件来控制的,加入如下内容到server段:
location ^~ /phpmyadmin {
stub_status on;
auth_basic "pls login";
auth_basic_user_file /root/auth.txt;
}
上面的示例是加密网站目录下的phpmyadmin文件夹,其下的目录都将被加密;如果不希望递归加密,把前面的^~符去掉。
# htpasswd -bcds /root/auth.txt someusername someuserpass
这样就会生成带有用户名为someusername,密码为someuserpass的auth.txt文件。
注意:由于修改了nginx配置文件,记得重启nginx.
示例: http://ovh.brite.biz/phpmyadmin/
相关帖子: http://briteming.blogspot.co.uk/2011/11/apache.html
http://briteming.blogspot.co.uk/2012/10/apache-htpasswdexe.html
--------------------------------------------------
Apache用户认证方法汇总
一.基本的Apache用户认证方法:
若对某一目录下的文件如/home/ftp/pub需要做到用户认证,则在httpd.conf
中加入下面的行
<>
options indexes followsymlinks
allowoverride authconfig
order allow,deny
allow from all
<>
用在目录/home/ftp/pub下放文件.htaccess,内容如下:
authname "shared files"
authtype basic
authuserfile /etc/.passwd
require valid-user
用随Apache来的程序htpasswd 生成文件/etc/.passwd,每行一个用户名:密码
只要能提供正确的用户名和密码对,就允许登录访问,这是针对任何地址来的
请求都要求提供用户名和密码认证。
二.针对部分网段或地址要求认证。
若公司LAN所在网段为192.168.0.0/24,且有一防火墙专线接入Internet,
内部网卡的地址为192.168.0.1/32,则现在希望所有通过拨本地163通过
防火墙上的apache反向代理向LAN上的另一WWW服务器访问时需要认证,而本地
LAN上的用户不需认证。可以在httpd.conf中放入:
〈Directory /home/ftp/pub>
Options Indexes FollowSymLinks
AllowOverride AuthConfig
order deny,allow
deny from 192.168.0.1
〈/Directory>
且在/home/ftp/pub/.htaccess中放入:
AuthName "shared files"
AuthType Basic
AuthUserFile /etc/.passwd
require valid-user
satisfy any
三.对同一目录及其下的子目录有不同的权限,仅某些人可以存取一目录下的
子目录。
如有一目录/home/ftp/pub/sales,有三个用户user1,user2,user3都需要用户名
和密码进入/home/ftp/pub,但仅user1,user2能进入/home/ftp/pub/sales.则
放下面的行到httpd.conf
〈Directory /home/ftp/pub>
Options Indexes
AllowOverride AuthConfig
order allow,deny
allow from all
〈/Directory>
〈Directory /home/ftp/pub/sales>
Options Indexes
AllowOverride AuthConfig
order allow,deny
allow from all
〈/Directory>
且看/home/ftp/pub/.htaccess为:
AuthName "shared files"
AuthType Basic
AuthUserFile /etc/.passwd
require valid-user
且看/home/ftp/pub/sales/.htaccess
AuthName "shared files"
AuthType Basic
AuthUserFile /etc/.passwd
AuthGroupFile /etc/.salesgroup
require group manager
且文件/etc/.passwd内容为:
user1:passwd1
user2:passwd2
user3:passwd3
且文件/etc/.salesgroup内容为:
manager: user1 user2
相关帖子:
http://briteming.blogspot.co.uk/2011/11/apache.html
通常情况下,网站上总是会有那么一两个目录是不能任意让别人访问的!这时候,我们可以通对对htaccess进行设置,以实现访问该目录时,要求输入自定的用户名和密码。
Apache对网站目录加密是用.htaccess文件进行设置,在.htaccess文件中写入:
AuthName xxx
AuthType basic
AuthUserFile /root/auth.txt
require valid-user
把该.htaccess文件放到要保护的目录下。
再生成相应的密码文件:auth.txt(该文件名可以随意,不过必须与.htaccess中相同):
# htpasswd -bcds auth.txt someusername someuserpass
这样就会在当前目录下生成带有用户名为someusername,密码为someuserpass的auth.txt文件。
这里有点需要注意的地方,就是我们的密码文件,虽然密码是加密的,即使被下载了,也不能知道真正的密码!但是,被人下载密码文件,总是会感到不安全的。所以,建议是将密码文件auth.txt放到网站根目录外,比如放在/root/下,这样就安全多了。
示例:http://as3.brite.biz/mt/
----------------------------------------------
Nginx网站目录加密
Nginx网站目录加密是通过nginx.conf文件来控制的,加入如下内容到server段:
location ^~ /phpmyadmin {
stub_status on;
auth_basic "pls login";
auth_basic_user_file /root/auth.txt;
}
上面的示例是加密网站目录下的phpmyadmin文件夹,其下的目录都将被加密;如果不希望递归加密,把前面的^~符去掉。
# htpasswd -bcds /root/auth.txt someusername someuserpass
这样就会生成带有用户名为someusername,密码为someuserpass的auth.txt文件。
注意:由于修改了nginx配置文件,记得重启nginx.
示例: http://ovh.brite.biz/phpmyadmin/
相关帖子: http://briteming.blogspot.co.uk/2011/11/apache.html
http://briteming.blogspot.co.uk/2012/10/apache-htpasswdexe.html
--------------------------------------------------
Apache用户认证方法汇总
一.基本的Apache用户认证方法:
若对某一目录下的文件如/home/ftp/pub需要做到用户认证,则在httpd.conf
中加入下面的行
<>
options indexes followsymlinks
allowoverride authconfig
order allow,deny
allow from all
<>
用在目录/home/ftp/pub下放文件.htaccess,内容如下:
authname "shared files"
authtype basic
authuserfile /etc/.passwd
require valid-user
用随Apache来的程序htpasswd 生成文件/etc/.passwd,每行一个用户名:密码
只要能提供正确的用户名和密码对,就允许登录访问,这是针对任何地址来的
请求都要求提供用户名和密码认证。
二.针对部分网段或地址要求认证。
若公司LAN所在网段为192.168.0.0/24,且有一防火墙专线接入Internet,
内部网卡的地址为192.168.0.1/32,则现在希望所有通过拨本地163通过
防火墙上的apache反向代理向LAN上的另一WWW服务器访问时需要认证,而本地
LAN上的用户不需认证。可以在httpd.conf中放入:
〈Directory /home/ftp/pub>
Options Indexes FollowSymLinks
AllowOverride AuthConfig
order deny,allow
deny from 192.168.0.1
〈/Directory>
且在/home/ftp/pub/.htaccess中放入:
AuthName "shared files"
AuthType Basic
AuthUserFile /etc/.passwd
require valid-user
satisfy any
三.对同一目录及其下的子目录有不同的权限,仅某些人可以存取一目录下的
子目录。
如有一目录/home/ftp/pub/sales,有三个用户user1,user2,user3都需要用户名
和密码进入/home/ftp/pub,但仅user1,user2能进入/home/ftp/pub/sales.则
放下面的行到httpd.conf
〈Directory /home/ftp/pub>
Options Indexes
AllowOverride AuthConfig
order allow,deny
allow from all
〈/Directory>
〈Directory /home/ftp/pub/sales>
Options Indexes
AllowOverride AuthConfig
order allow,deny
allow from all
〈/Directory>
且看/home/ftp/pub/.htaccess为:
AuthName "shared files"
AuthType Basic
AuthUserFile /etc/.passwd
require valid-user
且看/home/ftp/pub/sales/.htaccess
AuthName "shared files"
AuthType Basic
AuthUserFile /etc/.passwd
AuthGroupFile /etc/.salesgroup
require group manager
且文件/etc/.passwd内容为:
user1:passwd1
user2:passwd2
user3:passwd3
且文件/etc/.salesgroup内容为:
manager: user1 user2
相关帖子:
http://briteming.blogspot.co.uk/2011/11/apache.html