Ubuntu中PHP如何安全设置
导读:Ubuntu中PHP安全设置实操清单 一 基础与系统层面 保持系统与PHP为最新版本,及时修补漏洞:执行sudo apt update && sudo apt upgrade。 仅安装必要的模块,减少攻击面:例如sudo...
Ubuntu中PHP安全设置实操清单
一 基础与系统层面
- 保持系统与PHP为最新版本,及时修补漏洞:执行sudo apt update & & sudo apt upgrade。
- 仅安装必要的模块,减少攻击面:例如sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip。
- 禁用不需要的PHP模块(示例):sudo a2dismod php7.4-ftp。
- 启用HTTPS并强制全站加密:使用Let’s Encrypt获取证书,Apache执行sudo apt install certbot python-certbot-apache,然后sudo certbot --apache -d yourdomain.com。
- 配置防火墙仅开放必要端口:例如sudo ufw allow ‘Nginx Full’ & & sudo ufw enable。
- 建立备份策略:定期备份代码与数据库,示例rsync -avz /var/www/html /path/to/backup与mysqldump -u user -p db > backup.sql。
二 php.ini关键安全参数
- 错误与日志:生产环境关闭展示错误,开启日志并写入专用文件。示例:
- display_errors = Off
- log_errors = On
- error_log = /var/log/php_errors.log
- 远程资源包含:关闭远程文件包含与打开,降低远程代码执行风险。示例:
- allow_url_fopen = Off
- allow_url_include = Off
- 资源与执行限制:合理限制脚本资源,抑制滥用。示例:
- max_execution_time = 30
- memory_limit = 128M
- upload_max_filesize = 2M
- post_max_size = 8M
- 危险函数:按应用需求禁用高危函数。示例:
- disable_functions = eval,exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec
- 目录访问限制:限制脚本可访问目录(路径按实际调整)。示例:
- open_basedir = /var/www/html/:/tmp/
- 会话安全:启用安全Cookie属性与合理生命周期。示例:
- session.cookie_httponly = On
- session.cookie_secure = On
- session.cookie_samesite = Strict
- session.gc_maxlifetime = 1440
- 信息泄露防护:隐藏PHP版本信息。示例:
- expose_php = Off
- 性能与安全:启用并正确配置OPcache。示例:
- [opcache]
- zend_extension=opcache.so
- opcache.enable=1
- opcache.memory_consumption=128
- opcache.interned_strings_buffer=8
- opcache.max_accelerated_files=4000
- opcache.revalidate_freq=60
- 数据库相关:禁止本地文件读取,降低攻击面。示例:
- mysqli.allow_local_infile = Off
三 找到并修改正确的php.ini
- 确认加载的配置文件路径:php --ini。
- 区分运行环境分别修改:
- CLI:/etc/php/{ version} /cli/php.ini
- Apache模块:/etc/php/{ version} /apache2/php.ini
- PHP-FPM:/etc/php/{ version} /fpm/php.ini
- 修改后重启对应服务:
- Apache:sudo systemctl restart apache2
- PHP-FPM:sudo systemctl restart php{ version} -fpm
- Nginx(与FPM配合):sudo systemctl restart nginx
- 验证生效:临时创建info.php(内容为****)查看配置是否已更新。
四 Web服务器与运行环境加固
- Apache:在虚拟主机中限制访问、禁用目录浏览、仅暴露必要接口;示例配置包含**段设置与AllowOverride All/Require all granted**等。
- Nginx:将PHP请求通过FastCGI转发到php-fpm.sock,并禁止访问敏感文件(如**.ht**)。示例:
- location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; }
- location ~ /.ht { deny all; }
- 运行用户与权限:确保Web服务用户(如www-data)仅拥有网站目录的最小必要权限,避免以root运行PHP/FPM。
五 应用层安全与持续运维
- 输入与输出安全:使用预处理语句/参数化查询防止SQL注入;对输出进行HTML转义与**内容安全策略(CSP)**配置。
- 会话管理:在代码中设置安全Cookie并定期重新生成会话ID,示例:
- session_start([‘cookie_secure’ => true, ‘cookie_samesite’ => ‘strict’, ‘cookie_httponly’ => true]);
- session_regenerate_id(true);
- 密码存储:使用**password_hash()/password_verify()**处理口令。
- 依赖管理:使用Composer并锁定依赖版本,及时更新。
- 安全审计与监控:定期审查代码与配置、启用日志监控与告警、制定备份与恢复演练计划。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu中PHP如何安全设置
本文地址: https://pptw.com/jishu/749054.html
