Ubuntu下PHP安全配置方法
导读:1. 更新系统与PHP版本 保持系统和PHP为最新版本是安全基础,可及时修复已知漏洞。执行以下命令更新系统及PHP: sudo apt update && sudo apt upgrade -y sudo apt insta...
1. 更新系统与PHP版本
保持系统和PHP为最新版本是安全基础,可及时修复已知漏洞。执行以下命令更新系统及PHP:
sudo apt update &
&
sudo apt upgrade -y
sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y
2. 配置PHP核心安全参数(php.ini)
通过php --ini
命令定位php.ini文件(路径通常为/etc/php/{
version}
/cli/php.ini
或/etc/php/{
version}
/fpm/php.ini
),修改以下关键参数:
- 错误报告:禁用详细错误显示,避免敏感信息泄露:
display_errors = Off log_errors = On error_log = /var/log/php_errors.log
- 危险函数禁用:关闭可能被滥用的函数(如执行系统命令、文件操作等):
disable_functions = eval,exec,passthru,shell_exec,system,curl_exec,parse_ini_file,show_source
- 文件上传限制:限制上传文件大小,防止恶意文件上传攻击:
upload_max_filesize = 2M post_max_size = 8M file_uploads = On
- 目录访问限制:用
open_basedir
限定PHP脚本可访问的目录范围:open_basedir = /var/www/html/:/tmp/
- 会话安全:增强会话ID的随机性和安全性,防止会话劫持:
session.cookie_secure = On # 仅通过HTTPS传输会话Cookie session.cookie_httponly = On # 禁止JavaScript访问会话Cookie session.cookie_samesite = Strict # 限制会话Cookie仅在同站请求中发送 session.gc_maxlifetime = 1440 # 会话有效期(分钟)
3. 强化Web服务器配置
- Apache:禁用服务器版本信息泄露,启用安全模块:
编辑/etc/apache2/conf-enabled/security.conf
,添加:
启用ServerTokens Prod ServerSignature Off
mod_security
(Web应用防火墙)和mod_evasive
(防暴力破解):sudo a2enmod security2 evasive2 sudo systemctl restart apache2
- Nginx:配置PHP-FPM处理PHP文件,限制访问权限:
在/etc/nginx/sites-available/default
中添加:location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php{ version} -fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
4. 使用HTTPS加密传输
通过Let’s Encrypt获取免费SSL证书,启用HTTPS:
sudo apt install certbot python3-certbot-apache -y # Apache
sudo certbot --apache -d yourdomain.com
# 或Nginx
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d yourdomain.com
5. 设置文件与目录权限
确保Web目录及文件权限合理,避免未授权访问:
sudo chown -R www-data:www-data /var/www/html # 将所有权赋予Web服务器用户
sudo chmod -R 755 /var/www/html # 目录权限设为755(所有者可读/写/执行,其他用户可读/执行)
sudo find /var/www/html -type f -exec chmod 644 {
}
\;
# 文件权限设为644(所有者可读/写,其他用户可读)
6. 启用OPcache提升性能与安全性
OPcache可缓存编译后的PHP脚本,减少服务器负载,同时降低源代码泄露风险。在php.ini中启用:
[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
7. 定期维护与监控
- 备份数据:定期备份网站文件与数据库(如使用
rsync
或mysqldump
):sudo rsync -avz /var/www/html /path/to/backup mysqldump -u username -p database_name > database_backup.sql
- 安全审计:使用工具(如
PHPSA
)扫描代码漏洞,监控访问日志与错误日志(/var/log/apache2/access.log
、/var/log/php_errors.log
),及时发现异常行为。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu下PHP安全配置方法
本文地址: https://pptw.com/jishu/733432.html