系统级安全强化
www-data)运行;网站目录权限设置为文件644、目录755,避免PHP直接操作静态文件(如将静态文件处理交给Web服务器)。enforcing模式;安装并配置AppArmor,对PHP-FPM等服务进行进程隔离,限制其对系统资源的非法访问。PHP自身配置安全
php.ini禁用高危函数(如exec、system、passthru、eval),防止恶意代码执行;禁用allow_url_fopen和allow_url_include,阻断远程文件包含/执行攻击;设置expose_php = Off,避免HTTP头部泄露PHP版本信息。open_basedir参数将PHP脚本限制在指定目录(如/var/www/html),防止越权访问系统敏感文件(如/etc/passwd)。opcache加速脚本执行,同时减少源码暴露风险;设置display_errors = Off(生产环境),将错误信息记录到专用日志文件(如/var/log/php_errors.log),避免敏感信息泄露。Web服务器层防护
server_tokens off);关闭不必要的模块(如Apache的autoindex模块防止目录列表)。limit_req_zone限制请求频率(如每秒10次),抵御暴力破解;配置deny规则拒绝恶意IP访问。.php文件通过FastCGI解析(如Nginx的location ~ \.php$块),禁止上传目录执行PHP(如location ^~ /uploads/ { deny all; })。ssl_protocols TLSv1.2 TLSv1.3),保护数据传输安全。数据库安全防护
mysql_secure_installation设置强密码(包含大小写字母、数字、特殊字符);删除默认数据库(如test)和匿名用户;限制远程访问(仅允许localhost或信任IP),启用SSL加密连接(如REQUIRE SSL)。600)。持续维护与监控
apt update && apt upgrade定期更新系统、PHP及依赖库(如OpenSSL、GD库),及时修复已知漏洞;优先升级到PHP最新稳定版本(如PHP 8.x),获取最新安全特性。/var/log/syslog、/var/log/nginx/error.log、/var/log/php_errors.log等日志,使用fail2ban等工具自动封禁频繁攻击的IP;制定应急响应流程(如数据泄露时立即隔离服务器、恢复备份、修复漏洞)。/var/www/html)和数据库(如mysqldump),备份文件存储在异地(如云存储),确保灾难发生时可快速恢复。额外安全增强措施
session_regenerate_id()定期更换会话ID,防止会话固定攻击;将会话数据存储在安全目录(如/var/lib/php/sessions),设置session.cookie_httponly = On和session.cookie_secure = On(HTTPS环境下),防止XSS窃取会话。