从来没有一个二十二岁的女生 像她这样唱歌
PHP必备PHP中文手册(chm版)
上一篇 /
下一篇 2007-02-10 12:50:34
- 文件版本: V1.0
- 开发商: 本站原创
- 文件来源: 本地
- 界面语言: 简体中文
- 授权方式: 免费
- 运行平台: Win9X/Win2000/WinXP
可能受到的攻击
如果不想把 PHP 嵌入到服务器端软件(如 Apache)作为一个模块安装的话,可以选择以 CGI
的模式安装。或者把 PHP 用于不同的 CGI 封装以便为代码创建安全的 chroot 和 setuid 环境。这种安装方式通常会把 PHP
的可执行文件安装到 Web 服务器的 cgi-bin 目录。CERT 建议书 CA-96.11 建议不要把任何的解释器放到 cgi-bin
目录。尽管 PHP 作为一个独立的解释器,但是它的设计使它可以防止这类型的攻击:
访问系统文件:
http://my.host/cgi-bin/php?/etc/passwd 在 URL 请求的问号(?)后面的信息会传给 CGI 接口作为命名行的参数。其它的解释器会在命令行中打开并执行第一个参数所指定的文件。
但是,以 CGI 模式安装的 PHP 解释器被调用时,它会拒绝解释这些参数。
访问服务器上的任意目录:
http://my.host/cgi-bin/php/secret/doc.html 好像上面这种情况,PHP 解释器所在目录后面的 URL 信息 /secret/doc.html 将会例行地传给 CGI 程序并进行解释。通常一些 Web 服务器的会将它重定向到页面,如
http://my.host/secret/scrīpt.php。如果是这样的话,某些服务器会先检查用户访问 /secret 目录的权限,然后才会创建
http://my.host/cgi-bin/php/secret/scrīpt.php 上的页面重定向。不幸的是,很多服务器并没有检查用户访问 /secret/scrīpt.php 的权限,只检查了 /cgi-bin/php 的权限,这样任何能访问 /cgi-bin/php 的用户就可以访问 Web 目录下的任意文件了。
在 PHP 里,编译时的可选项 --enable-force-cgi-redirect 以及运行时的可选项 doc_root和user_dir都可以为服务器上的文件和目录添加限制,用于防止这类攻击。下面将对各个选项的设置进行详细讲解。
收藏
分享给好友
管理
举报
TAG:
php