php.ini 配置中有 3 处设置不当会使网站存在安全问题
1. allow_url_fopen
allow_url_fopen 是一个 PHP 配置项,这个设置决定了能否在 PHP 中打开 URL 作为一个文件。
在默认情况下该选项是开启的。开启该选项将会允许远程包含功能,因为这种类型的攻击常常会通过漏洞处理程序(例如 WordPress 插件)来生成 URL 来获取外部资源,而这些URL是经过特殊构造的,可能会给予攻击者的远程主机执行 PHP 的权限。
如果您不打算在您的应用程序中使用远程文件,请关闭此选项。
allow_url_fopen = Off
2. expose_php
expose_php 是一个决定了 PHP 是否会在服务器响应头中透露自己的标志,比如 “Powered-by: PHP”
像这样明确指出了 PHP 在运行,会为攻击者提供可攻击的目标,并“暴露”了PHP版本信息,当然可以通过强制“隐身”PHP的方式来防止攻击者的扫描。比如 LinkUp。我们必须先停用 expose_php。
expose_php = Off
3. display_errors
display_errors: 用于确定是否启用错误信息的输出。默认是在开发时使用。
在网站上,这毫无疑问将会泄露敏感信息,
避免在生产环境中显示错误信息。
如果你已经使用 PHP 错误日志器,那么关闭 PHP 错误输出是理想的。因此,禁用这个常量是非常好的选择,如果 PHP 执行期间发生错误,产生的错误信息将会协助攻击者发动攻击。如果你需要在 PHP 错误日志器中查找错误信息,则需要设置为 Off。
display_errors = Off