在Ubuntu上配置PHP安全策略可从以下方面入手:
-
系统与软件更新
定期更新系统和PHP至最新版本,安装安全补丁:sudo apt update && sudo apt upgrade -
配置php.ini关键参数
- 禁用危险函数:
disable_functions = system, exec, passthru, shell_exec, phpinfo - 限制文件访问:
open_basedir = /var/www/html:/tmp - 控制文件上传:
upload_max_filesize = 2M post_max_size = 8M file_uploads = On - 隐藏版本信息:
expose_php = Off - 错误处理:
display_errors = Off log_errors = On error_log = /var/log/php_errors.log
- 禁用危险函数:
-
启用安全模块
- mod_security(Web应用防火墙):
sudo apt install libapache2-mod-security2 sudo a2enmod security2
- mod_security(Web应用防火墙):
-
Web服务器配置
- Apache:禁用目录列表、限制敏感文件访问:
Options -Indexes "\.(ini|log|sh)$"> Require all denied - Nginx:禁止访问非Web目录:
location ~ ^/(uploads|config) { deny all; }
- Apache:禁用目录列表、限制敏感文件访问:
-
文件权限与所有权
确保Web根目录及文件权限正确:sudo chown -R www-data:www-data /var/www/html sudo chmod -R 755 /var/www/html sudo find /var/www/html -type f -exec chmod 644 {} \; -
加密与认证
- 使用HTTPS加密传输:通过Let’s Encrypt获取免费SSL证书:
sudo apt install certbot python3-certbot-apache sudo certbot --apache - 数据库连接使用参数化查询,避免SQL注入。
- 使用HTTPS加密传输:通过Let’s Encrypt获取免费SSL证书:
-
监控与维护
- 启用日志监控,定期分析访问日志和错误日志。
- 使用Fail2Ban防止暴力破解。
参考来源: