跳转到主内容
极星编程网:以代码为星,赴技术山海!

如何在Red Hat上配置PHP安全设置的详细教程?

首先修改php.ini隐藏版本信息并关闭错误显示,接着禁用exec等危险函数防止命令执行,然后限制文件上传大小与执行权限,再启用OpenSSL强制HTTPS传输,最后配置PHP-FPM使用非特权用户和扩展限制以提升安全性。

如果您在Red Hat系统上部署PHP应用,但未正确配置安全参数,则可能导致信息泄露、远程代码执行等高风险漏洞。为确保Web服务的安全性,必须对PHP的配置文件进行精细化调整。

本文运行环境:Dell PowerEdge R750,CentOS Stream 9

一、修改PHP配置文件中的敏感选项

通过禁用危险函数和限制文件访问权限,可有效降低服务器被恶意利用的风险。编辑主配置文件php.ini是实施这些安全策略的基础步骤。

1、使用命令

sudo vi /etc/php.ini打开PHP配置文件。

立即学习“PHP免费学习笔记(深入)

”;

2、查找

expose_php = On并将其值改为 Off,以隐藏服务器上的PHP版本信息。

3、定位到

display_errors = On,将其设置为 Off,防止错误信息暴露路径或数据库结构。

4、将

log_errors = Off修改为 On,并确保 error_log 指向一个受保护的日志文件路径,例如 /var/log/php_errors.log。

二、禁用危险的PHP函数

某些内置函数如exec、system等可能被攻击者用于执行操作系统命令。通过在配置中禁用这些函数,可以显著提升系统的抗攻击能力。

1、在 php.ini 文件中找到disable_functions指令。

2、添加以下函数列表:

exec,passthru,shell_exec,system,proc_open,popen,eval,assert,多个函数间用英文逗号分隔。

3、保存更改后执行

sudo systemctl restart httpd重启Web服务使配置生效。

三、限制文件上传与执行权限

不当的文件上传配置可能允许攻击者上传并执行恶意脚本。应严格控制上传行为及其存储位置的执行权限。

1、确认 php.ini 中file_uploads = On已启用,然后设置 upload_max_filesize 不超过 2M。

PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。

下载2、修改 open_basedir 指令,限定PHP脚本只能访问指定目录,例如:/var/www/html:/tmp。

3、对于存放上传文件的目录(如 uploads),使用命令sudo chmod 750 /var/www/html/uploads移除执行权限。

4、在Apache虚拟主机配置中添加

php_admin_value engine off到该目录块,禁止解析PHP脚本。

四、启用OpenSSL并强制加密连接

确保所有数据传输均通过加密通道进行,避免敏感信息在传输过程中被截获。

1、安装OpenSSL扩展:

sudo dnf install php-openssl。

2、检查 php.ini 是否已加载 openssl 扩展,确认行extension=openssl未被注释。

3、在Web服务器配置中启用HTTPS,并重定向HTTP请求至HTTPS端口。

4、设置会话

cookie

的secure标志:

session.cookie_secure = On,仅通过加密连接发送会话ID。

五、配置PHP-FPM安全参数(如使用)

当使用PHP-FPM处理动态内容时,需隔离用户进程并限制资源使用,防止越权访问和拒绝服务攻击。

1、编辑对应池配置文件,通常位于

/etc/php-fpm.d/www.conf。

2、设置

user和group为非特权用户,例如apache或 www-data。

3、启用

catch_workers_output = yes以捕获子进程输出日志。

4、配置

security.limit_extensions只允许 .php 扩展被执行,阻止上传其他类型脚本运行。

相关文章