【发布时间】:2011-09-19 10:02:18
【问题描述】:
我在为 PHP 设置白名单时遇到了以下问题:
我在 phpunit xml 中设置了以下过滤器:
<filter>
<whitelist>
<directory suffix=".php">../..</directory>
<exclude>
<directory>../../cache</directory>
<directory>../../public_html</directory>
<directory>../../temp</directory>
<directory>../../tools</directory>
</exclude>
</whitelist>
</filter>
没有该白名单,一切正常,但是当我输入它时,系统崩溃了,因为它试图包含所有文件。这使得它包含一个具有 require_once 的文件,因此它会使应用程序崩溃。
EDIT 系统在启动时定义了一些常量。由于在包含创建白名单的所有数据时未定义这些常量,因此它会尝试访问一个不存在的文件夹(PHP 假定该常量是一个字符串),因此 require_once 失败,并且鉴于它是一个要求,它崩溃了。
此外,如果有任何帮助,白名单将被用于与 Selenium 一起使用。也许这就是问题的根源?
【问题讨论】:
-
它也像 edorian 在我们的代码中写的那样工作。也许您的代码是在做一个简单的
require。编辑您的问题以添加实际的错误输出,因为“使应用程序崩溃”不是很有描述性。 -
也许您可以在 PHPUnit 引导程序或基本测试用例中定义该常量?
-
这不会违背良好的做法吗?无论如何,我会尝试一下,看看它是否至少有效。