2012-03-08 87 views
28

我被告知在我的php.ini中有expose_php = On是一个安全问题,因此不符合PCI标准。在php.ini中关闭expose_php

迄今为止,我的研究表明,关闭它是低风险的,并且基本上会停止在头部中发回PHP版本,但是我想知道是否有可能出现在这个背面的任何问题更改。

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

这应该是一个无缝的改变还是这有潜在的问题?

回答

45

这是正确的。

设置expose_php = Off只是防止网络服务器发回X-Powered-By标题。尽管人们可能会说潜在的黑客可能会寻找过时的PHP版本,并且有安全漏洞可以利用,但是即使头文件被关闭,他们也可能会做同样的事情。在我看来,这是一件好事,但不要指望它提供很多保护。

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

在任何情况下,他们依赖于“消费者”的PHP版本都是没用的,因为头可以轻松关闭,甚至可能由服务器管理员操纵。

因此,它不应该成为一个关闭它的问题。

7

当您禁用expose_php时,不应该有负面影响。

它所做的就是删除X-Powered-By标题并停止返回PHP信用点和图像的GET参数。

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

+0

如何使用GET获取php点数和图像? – user4271704 2016-01-04 14:44:18

+0

@ user4271704 http://stackoverflow.com/q/10458610/31671 – alex 2016-01-04 14:49:18

3

开启或关闭此选项绝对没有坏处。

关闭它不会为您的网站增加任何安全性。那些脚本小子工具非常笨,以至于他们从不费力地告诉另一个平台。

更不用说,如果您的网站是基于框架/ CMS的,那么无论如何都无法隐藏PHP的存在。

3

以任何方式都没有安全威胁,但暴露过时的PHP版本可能会诱使黑客尝试利用过去版本中记录良好的“漏洞”。

关于第三方服务,它们是平台独立的,不应该关心我们使用的是哪个版本的PHP。如果需要的话,我们可以简单地设置一个空头或像下面那样

header('X-Powered-By: Venu'); 
+0

或者只是用['header_remove('X-Powered-By')'](http://www.php.net/header_remove) 。 – Pang 2016-07-11 04:46:16