16.5.4 Web应用的商业主机服务
虚拟服务器的安全问题对某一群用户来说更加麻烦——这些用户在一个商业的PHP/MySQL主机服务上运行他们的Web应用。在这些服务器上,你将不能访问php.ini,而且将无法设置所有希望的选项设置。在极端情况下,某些服务甚至不会允许你在你的文档根目录下创建目录,以及剥夺保存引入文件的安全位置。幸运的是,大多数公司希望保持它们的业务,因此不安全的设计将无法留住客户。
要确保安全,你可以也必须从多方面考察这些公司并部署Web应用:
■在选择该服务之前,必须查看他们的支持列表。更好的服务将提供介绍如何配置你的私有空间的完备联机文档(我们可以找到一些优秀的动态教程)。通过查看这些文档,你可以了解服务的局限和支持。
■寻找一个能够提供完整目录结构树而不只是文档根目录的主机服务。尽管有些服务提供商会宣称私有空间的根目录就是文档根目录,而其他提供商将提供完整的目录结构树,其中public_html/目录就是保存你的应用以及执行PHP脚本的地方。在这些目录中,你可以安全地创建includes/目录用来保存引入文件(.inc)。这将有助于确保其他用户无法看到.inc文件的内容。
■尝试找到服务提供商在php.ini文件使用的设置值。尽管许多提供商可能不会在Web页面公布这些值或者将该文件以电子邮件形式发送给你,你可以向他们的技术支持人员问问题,例如,是否开启了安全模式以及哪些函数和类被禁用。也可以使用ini_get函数查看这些设置值。不使用安全模式或没有禁用任何函数的站点将使我们更加担心他们设置的任何值。
■查看服务提供商所使用的所有软件版本。它们是否是最新版本?如果无法看到某些输出,例如phpinfo,请使用Netcraft服务查看特定站点使用的软件。请确认它们真正运行了PHP 5.0!
■在确定长期使用某个服务提供商之前,寻找能够提供试用期、退费保障或一些其他方法能够看到你的Web应用被运行的服务提供商。