为什么将open_basedir与PHP一起用作IIS上的FastCGI?

问题描述 投票:1回答:1

[我看过几本教程,以FastCGI的形式在IIS下解释PHP的安装,建议将open_basedir设置为指向网站内容所在的文件夹或网络路径。

当我在应用程序服务器上设置open_basedir时,管理文件时出现以下错误:警告:open_basedir限制有效。文件(C:\ Windows \ Temp \ php92E7.tmp)不在允许的路径内:(C:\ inetpub \ wwwroot)

我知道我可以在inetpub下设置一个临时目录,但是我不明白为什么使用Windows \ temp是一个问题。

作为IIS上的FastCGI,PHP是否存在安全缺陷,因此要求open_basedir限制?如果没有,为什么推荐?还是没有必要?使用具有正确权限的AppPool身份能否获得open_basedir的优势?

php iis fastcgi open-basedir
1个回答
2
投票

设置open_basedir(不仅在具有IIS的Windows上,而且在任何Web服务器上的任何平台上)都是一种安全措施,用于限制您的应用程序可以读取,写入和和包含]的文件。

PHP可以从文件系统中的任何位置包含任何包含PHP代码的文件,实际上并不是安全缺陷,但这是一项功能。例如,您可能在Web根目录上有一些文件,而在Web根目录之外有其他文件(Web服务器将无法访问它们,但PHP将可以访问它们)。

但是,如果您的程序存在缺陷,您的用户可能可以读取或包含(甚至编写)不属于应用程序的文件。这些文件可能是系统文件,用户上传的文件或其他应用程序的文件。这就是open_basedir很重要的原因。

注意,在设置open_basedir之后,还要设置其他PHP函数的路径(例如upload_tmp_dir),因为它们也应位于open_basedir路径下。

© www.soinside.com 2019 - 2024. All rights reserved.