- 论坛徽章:
- 0
|
在web服务器上,创建一部分需要用户密码认证才能浏览的内容,通常使用
<Directory /usr/local/apache/apache/htdocs/secret>;
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/apache/passwd/passwords
AuthGroupFile /usr/local/apache/passwd/groups
Require group GroupName
</Directory>;
这样的方式有2个问题需要解决。
1、效率问题:
由于采用了Basic认证的方法, 每次向服务器请求甚至刷新一个受保护的页面或图片时都必须校验用户名和密码, 为此,必须打开密码文件并逐行搜索用户名,因此,服务器响应速度会受一些影响, 其程度与密码文件大小成正比。所以,对密码文件中的用户总数存在一个实际上的上限, 此上限取决于特定的服务器机器的性能,但是一般有几百个用户就会对响应速度有明显的影响, 在这种情况下,可以考虑用其他认证方法。
采用数据库方式,有可能提高这方面的上限,但是,看样子,效率还是有问题的。
2、永久性登录问题
用这种认证,每次用户新开浏览器的话,就需要重新输入帐号和密码。这样不是很方便。有没有象论坛一样,使用cookie记录,只需要登录一次的认证方法呢?
按照mod_access的说法,mod_access提供的指令用在<Directory>;, <Files>;, and <Location>;部分中,也用于 .htaccess 文件中控制对服务器特定部分的访问。只要在环境变量中捕获到主机名、IP地址或其他客户端请求的特征,就可以基于这些特性对访问进行控制。 Allow和Deny指令字被用于指出允许哪些客户及不允许哪些客户访问服务器, 而Order指令字设置缺省的访问状态并配置 Allow和Deny指令怎样相互作用。
基于主机的访问限制和基于口令的身份证明两套机制可以同时实现。在那种情况下, Satisfy指令用来决定着两套机制如何相互作用。
一般来说,访问限制指令适用于所有的访问存取方法(GET, PUT, POST等等)。在多数情况下这是一个被期望的特性。但是,只限制一些方法而对其他方法不加限制也是可能的, 通过把指令放到一个<Limit>;小节中去。
从上面的黑体字部分来看,是不是应该有一种使用cookie认证的方法存在?
请教坛子里的高手。 |
|