在Ubuntu系统下进行PHP安全设置,可以遵循以下步骤和最佳实践:
首先,确保系统和所有软件包都是最新的:
sudo apt update
sudo apt upgrade
编辑 /etc/php/7.x/apache2/php.ini
(根据你的PHP版本调整路径),设置以下参数:
expose_php = Off
display_errors = Off
log_errors = On
error_reporting = E_ALL
在生产环境中,关闭详细的错误报告,只显示必要的信息。可以在 php.ini
中设置:
display_errors = Off
log_errors = On
error_reporting = E_ALL
在 php.ini
中禁用不安全的函数,例如:
disable_functions = eval, exec, system, passthru, shell_exec, popen, curl_exec, curl_multi_exec, parse_ini_file, show_source
在 php.ini
中设置:
upload_max_filesize = 2M
post_max_size = 8M
使用 open_basedir
限制PHP可以访问的系统目录:
open_basedir = /var/www:/tmp
在 /etc/apache2/apache2.conf
或 /etc/apache2/sites-available/000-default.conf
中设置:
ServerTokens Prod
ServerSignature Off
启用 mod_security
和 mod_evasive
等Apache模块来防止攻击:
sudo a2enmod security2
sudo a2enmod evasive2
确保你的应用程序文件和目录具有适当的访问权限。例如,使用 chown
和 chmod
命令设置目录和文件的所有者和权限:
sudo chown -R www-data:www-data /var/www/html
sudo chmod -R 755 /var/www/html
通过SSL/TLS加密所有传输数据,使用Let’s Encrypt等工具为你的网站获取免费的SSL证书:
sudo apt install certbot python3-certbot-apache
sudo certbot --apache
定期更新Apache和PHP到最新版本,并关注安全公告,及时应用安全补丁。
启用并监控访问日志和错误日志,使用入侵检测系统(IDS)监控可疑活动。
使用诸如PHP Security Advisories Checker(PHPSA)之类的工具来扫描你的代码,查找潜在的安全问题。