Apache 处理的每个请求都要履行一套复杂的规则,这些规则指明了 Web 服务器必须遵循的约束或特殊指令。对文件夹的访问可能按 IP 地址约束为某个特定文件夹,也可配置用户名和密码。这些选项还包含处理特定文件,例如,如果提供了一个目录列表,该如何处理的文件,或输出结果是否应压缩。
这些配置以 httpd.conf 中容器的形式出现,例如 <Directory>,以便指定所用配置引用的是磁盘上的一个位置;再如 <Location>,表示引用是 URL 中的路径。清单 2 展示了一个实际的 Directory 容器。
清单 2. 为根目录应用的一个 Directory 容器
<Directory /> AllowOverride None Options FollowSymLinks </Directory>
在清单 2 中,位于一对 Directory 和 /Directory 标记之间的配置应用于给定目录和该目录下的一切内容 —— 在本例中,这个给定目录是根目录。此处,AllowOverride 标记指出,用户不允许重写任何选项(稍后将进一步介绍)。
FollowSymLinks 选项被启用,它允许 Apache 查看之前的符号连接来为请求提供服务,即便文件位于包含 Web 文件的目录之外。这就意味着,如果 Web 目录中的一个文件是 /etc/passwd 的符号连接,Web 服务器将在请求时顺利为该文件提供服务。如果使用了 -FollowSymLinks,该特性就会被禁用,同样的请求将致使为客户机返回错误。
最后这个场景正是导致两方面关注的原因所在。第一个方面与性能有关。如果禁用了 FollowSymLinks,Apache 就必须检查使用该文件名的所有组件(目录和文件本身),以确保它们不是符号连接。这会带来额外的开销(磁盘操作)。另外一个称为 FollowSymLinksIfOwnerMatch 的选项会在文件所有者与连接所有者相同时使用符号连接。为获得最佳性能,请使用 清单 2 中的选项。
至此,有安全意识的读者应该有了警惕的感觉。安全性永远是功能性与风险之间的权衡。在我们的例子中,功能性是速度,而风险是允许对系统上的文件进行未经授权的访问。缓解风险的措施之一是 LAMP 应用服务器通常专注于一种具体功能,用户无法创建危险的符号连接。如果有必要启用符号连接,那么可以将其约束在文件系统的特定区域,如清单 3 所示。
清单 3. 将 FollowSymLinks 约束为一个用户的目录
<Directory /> Options FollowSymLinks </Directory> <Directory /home/*/public_html> Options -FollowSymLinks </Directory>
在清单 3 中,一个用户的主目录中的任何 public_html 目录及其所有子目录都移除了 FollowSymLinks 选项。
- 用Photoshop给漂亮的烫发MM抠图
- Photoshop透明婚纱抠图大法
- Photoshop:让MM做个“变色龙”
- 用Photoshop来制作一款精美的宝宝照片墙
- Photoshop绝色美女通道抠图法
- 用Photoshop教你打造绚丽光芒效果
巧巧读书:http://www.qqread.com/php/2008/02/d396787.html
相关专题
- 系统优化大全 (18147篇文章)
- Apache配置专题 (864篇文章)
- Apache技术专题 (864篇文章)
- PHP开发应用手册 (2952篇文章)
- Apache 优化 (16篇文章)
- Web服务器 (393篇文章)
- 使用PHP 5.2 中新的内存管理器 (0次浏览)
- 实例:PHP判断用户是否正确登录转到欢迎界面 (0次浏览)
- 入门:学习掌握PHP的编程语句 (0次浏览)
- 关于PHP的前途 (0次浏览)
- 分析PHP应用程序以查找、诊断和加速运行缓慢的 (0次浏览)
- 动态语言崛起 Delphi For PHP横空出世 (0次浏览)
- Classes and Objects in PHP5 (0次浏览)
- apache 2.2.2 + PHP5.1.4 不能运行的解决办法 (0次浏览)
- Zeus+php+Zend Optimizer安装指南 (0次浏览)
- Windows下的PHP5.0安装配置详解 (0次浏览)



