37

我被告知expose_php = On在我的 php.ini 中存在安全问题,因此不符合 PCI 标准。

到目前为止,我对它的研究表明,将其关闭是低风险的,并且基本上会停止在标头中发回 PHP 版本,但是我想知道此更改背后是否可能出现任何问题。

我正在考虑的潜在问题是第三方服务(支付提供商、电子邮件跟踪系统、视频流 API),它们希望您响应一个标头,表明您正在运行一个 PHP 版本,可能超过某个版本?

这应该是一个无缝的变化,还是有可能出现问题?

4

4 回答 4

61

这是正确的。

设置expose_php = Off只是防止网络服务器发回X-Powered-By标头。

虽然可以说潜在的黑客可能会寻找带有安全漏洞的过时版本的 PHP,但即使标头被关闭,他们也可能会这样做。在我看来,这是一件好事,但不要指望它能提供太多保护。

在与第三方服务交互方面,他们不必关心您使用的是哪个版本的 PHP。它们应该能够以与平台无关的格式(例如 JSON、XML 等)提供内容,以便服务可以被任何平台使用,而不仅仅是 PHP。

无论如何,对于他们来说,依赖“消费者”的 PHP 版本是没有用的,因为标头可以很容易地关闭,甚至可能被服务器管理员操纵。

因此,关闭它应该不是问题。

于 2012-03-08T12:25:23.587 回答
7

禁用时应该没有负面影响expose_php

它所做的只是删除X-Powered-By标题并阻止 GET 参数返回 PHP 积分和图像。

任何依赖标头的第三方应用程序都是狡猾的。如果需要,您始终可以欺骗标题。

于 2012-03-08T12:21:18.847 回答
5

无论如何都没有安全威胁,但暴露过时的 PHP 版本可能会邀请黑客尝试利用过去版本中记录良好的“漏洞”。

关于第三方服务,它们是独立于平台的,不必关心我们使用的是哪个版本的 PHP。如果需要,我们可以简单地设置一个空标题或如下所示。

header('X-Powered-By: Venu');
于 2014-12-24T06:46:36.450 回答
3

打开或关闭此选项绝对没有害处。

不过,将其关闭不会为您的网站增加任何安全性。那些脚本小子工具是如此愚蠢,以至于他们从不费心将一个平台与另一个平台区分开来。

更不用说,如果您的网站是基于某些框架/CMS 的,那么隐藏 PHP 的存在是没有用的。

于 2012-03-08T12:27:33.000 回答