如果 PHP 崩溃,Apache 是否可以显示 PHP 源代码?

如果 PHP 崩溃,Apache 是否可以显示 PHP 源代码?

这更像是一个安全问题:是否存在任何情况(例如,将 PHP 作为 CGI 二进制文件而不是 Apache 模块运行,不良默认配置的示例等),如果 PHP 独立于 Apache 崩溃,Apache 会呈现 PHP 脚本的未处理源代码?

答案1

否:Apache 使用某种方法(DSO、CGI、suPHP 等)将脚本处理完全委托给 PHP。无论它输出什么,都将被视为呈现给用户的响应。

如果它即将崩溃,那么大多数情况下,进程将崩溃而不输出标头。如果它不输出标头(Apache 会知道这一点,因为它在响应中找不到一个空白行),它将呈现失败并在您的500 Internal Server Error中记录一条消息。error_logPremature end of script headers

假如它成功输出:

Content-type: text/plain

Segmentation Fault

然后用户将在屏幕上看到“段错误”,仅此而已。


您的问题还说:

不良默认配置的示例

是的,如果 Apache不是配置为处理 PHP 页面,那么它只会将文件转储给用户。除此之外,没有任何一种糟糕的配置会让你处于半工作状态最多但并非全部时间。

相关内容