Apache配置--用户认证(针对目录访问)-update2015-05-02
通过Apache配置可以限制用户对目录的访问,会弹出像phpadmin一样的登陆框。
===========================================================
1)建立需要保护的目录
①在/usr/local/apache2/htdocs/下建立目录,然后保护,或者②。
②使用别名(httpd-autoindex.php),在系统位置建立目录,然后保护。
在httpd-autoindex.php文件中建立别名目录:
Alias /soft/ "/share/soft"
<Directory "/share/soft/">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
2)修改配置文件的AllowOverride,允许.htaccess权限文件生效
<Directory "/share/soft/">
Options Indexes FollowSymLinks
AllowOverride All #开启权限认证文件.htaccess
Order allow,deny
Allow from all
</Directory>
3)在指定目录建立权限文件
cd /share/soft
vim .htaccess
#加入下边的四句话(不区分大小写)。
AuthName "input your pwd" #提示信息,会显示在弹出的密码框中,可以修改。
AuthType basic #加密类型
AuthUserFile /share/soft/apache.passwd #密码文件,文件名和位置自定义。(最好不要定义在soft/目录下,因为 “Options Indexes”,会看到密码文件)
require valid-user #允许密码文件中所有用户访问
4)建立密码文件,加入允许访问的用户。
/usr/local/apache2/bin/htpasswd -c /share/soft/apache.passwd test1
//此命令后会提示输入密码,-c表示建立密码文件,只有添加第一个用户时,才能-c //再添加用户用-m
/usr/local/apache2/bin/htpasswd -m /share/soft/apache.passwd test2
访问www.xxx.com/soft/时会提示:
5)不通过.htaccess权限文件配置,即直接在配置文件中配置权限也可以,就省略了3步,修改2步如下
<Directory "/share/soft/">
Options Indexes Includes FollowSymLinks
Order allow,deny
Allow from all
AllowOverride None
AuthUserFile /usr/share/monitorix/.passwd #就是把这四句话直接加到下边
AuthName "input your pwd"
AuthType Basic
Require valid-user
</Directory>
6)需要验证的页面通过curl抓取
//虚拟机地址,这里url直接写虚拟机配置的host域名会导致curl报错,找不到host。
//需要先写IP,然后在设置一个Host选项
$url = 'http://192.168.31.174:80';
$param = array('content'=>'fdipzone blog'); //post的数据 $ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($param));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_HTTPHEADER,array("Host: kwht.com")); //这里制定host名称
curl_setopt($ch, CURLOPT_USERPWD, 'asd:asd'); // http auth
$ret = curl_exec($ch);
if (false === $ret) {
echo "curl_error".curl_error($ch);
}
$retinfo = curl_getinfo($ch);
curl_close($ch); if($retinfo['http_code']==200){
$data = json_decode($ret, true);
print_r($data);
}else{
echo 'POST Fail';
}
7)不通过修改配置和文件+生成密码文件的方式配置
服务端可以通过判断$_SERVER['PHP_AUTH_USER'],$_SERVER['PHP_AUTH_PW']验证账号和密码
把下边的代码加入到index.php,可以不用修改配置文件也不用生成密码文件而是通过PHP提供的$_SERVER变量来验证
<?php
if(!isset($_SERVER['PHP_AUTH_USER']))
{
header('WWW-Authenticate: Basic realm="localhost"'); //头部返回这行就会弹出登陆框
header("HTTP/1.0 401 Unauthorized");
exit;
}else{
if (($_SERVER['PHP_AUTH_USER']!= "asd" || $_SERVER['PHP_AUTH_PW']!="asd")) {
header('WWW-Authenticate: Basic realm="localhost"');
header("HTTP/1.0 401 Unauthorized");
exit;
}
}
//验证通过才到这里来
$content = isset($_POST['content'])? $_POST['content'] : '';
header('content-type:application/json');
echo json_encode(array('content'=>$content));
?>
Apache配置--用户认证(针对目录访问)-update2015-05-02的更多相关文章
- Linux服务器---配置apache支持用户认证
Apache支持用户认证 为了服务器的安全,通常用户在请求访问某个文件夹的时候,Apache可以要求用户输入有效的用户名和登录密码 1.创建一个测试目录 [root@localhost cgi-bin ...
- nginx 配置用户认证
nginx 配置用户认证有两种方式: 1.auth_basic 本机认证,由ngx_http_auth_basic_module模块实现.配置段: http, server, location, li ...
- SVN+Apache域用户认证配置方法_Windows(转,重新排版,部分内容更新优化)
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- apache 配置用户级目录
如果你只需要在用户目录下使用apache的话,还有一个最简单的方式,直接将 httpd.conf文件下的 DocumentRoot "/Library/WebServer/Documents ...
- apache的用户认证
1. 限制用户访问的方式: 1. 限制访问服务的客户端主机 2. 需要用户名和密码 2. 行为用户验证需要两步: 1. 创建一个包含用户名和密码的文件 2. 服务器上的哪些资源需要保护,哪些用户可以进 ...
- nginx配置用户认证
location ~ .*admin\.php$ { auth_basic "weifenglinux auth"; auth_ba ...
- LNMP配置——Nginx配置 —— 用户认证
一.配置 再来创建一个新的虚拟主机 #cd /usr/local/nginx/conf/vhost #vi test.com.conf 写入: server { listen 80; server_n ...
- apache配置多个虚拟目录站点
错误的做法 网上查了几个资料,做法如下:比如想配置两个www.web1.com www.web2.com站点 打开httpd.conf ,然后添加: <VirtualHost *:80> ...
- The requested URL / was not found on this server——Apache配置虚拟域名后无法访问localhost
今天为了做项目,在Apache中配置了项目域名,成功访问.但是忽然发现要访问localhost突然出现The requested URL / was not found on this server. ...
随机推荐
- 【学习笔记&训练记录】数位DP
数位DP,即对数位进行拆分,利用数位来转移的一种DP,一般采用记忆化搜索,或者是先预处理再进行转移 一个比较大略的思想就是可以对于给定的大数,进行按数位进行固定来转移记录答案 区间类型的,可以考虑前缀 ...
- GitHub Pages和每个项目绑定自定义域名(支持多个和顶级域名)
假设我购买的域名为www.easonjim.com,想把www.easonjim.com和easonjim.com的域名跳转到下面的网址easonjim.github.io. 而我在github上的账 ...
- Jenkins通过FTP上传站点太多文件导致太慢且不稳定,切换为压包上传再解压的思路(asp.net)
在本地先处理好要上传的站点文件之后,可能会因为一些网页切图导致ftp上传不稳定,中断,或者文件占用的问题. 那么换了一种实现思路,要借助jenkins的工具jenkins-cli.jar. 解决思路: ...
- Jenkins 2.x新建节点配置(Windows)
2.0版本以上默认加入了权限插件,所以在进入主界面时是需要登录的. 一.主界面->[系统管理]->[管理节点]->[新建节点],进行节点的添加: 二.输入节点名称,已经选择[Perm ...
- System.BadImageFormatException: 未能加载文件或程序集""或它的某一个依赖项。试图加载格式不正确的程序。
解决方法: 1.更改程序集的生成目标平台为[Any CPU],或者针对平台进行编译. 项目右键->[属性]->[生成]->[生成目标平台] 2.尝试一下修改线程池设置为32位支持.
- 应用服务器Glassfish任意文件读取漏洞
catalogue . 前言和技术背景 . Glassfish安装配置 . 漏洞利用 . 漏洞缓解(修复) 1. 前言和技术背景 0x1: GlassFish是什么 GlassFish 是用于构建 J ...
- CentOS找回root密码
如果忘记了root密码,可以进入单用户模式进行密码重置. 重启系统,在grub的启动菜单中按下e键,然后编辑kernel那一行,在最后的quiet后加上single. 按下Enter后,再按b开机进入 ...
- 使用IDEA进行远程调试
虽然很早以前就只有Eclipse和IDEA都支持远程调试功能的,但是基本没怎么使用过,今天因为紧急处理一个问题,而本地环境搭建起来比较麻烦,所以就使用了IDEA的远程调试功能.因此写一篇文章记录一下. ...
- 【转载】Linux启动过程
转自:http://cizixs.com/2015/01/18/linux-boot-process 简介 我们都知道:操作系统运行的代码是在硬盘上的,最终要跑到内存和 CPU 上,才能被我们使用. ...
- MooseFs-分布式文件系统系列(三)之MFSclient端的使用
Web界面监控MFS状态 mfscgiserv 是用python写的一个web服务器,监听端口是9425,必须在master(管理服务器上)上启动 常用的参数如下: | 参数| 作用| |:--| : ...