在Ubuntu系统上设置PHP的安全性是非常重要的,以下是一些关键的安全设置步骤和最佳实践:
确保系统和所有软件包都是最新的,以修复已知的安全漏洞。
sudo apt update
sudo apt upgrade
安装并配置Apache或Nginx,并确保使用HTTPS来加密数据传输。
对于Apache:
sudo apt install apache2
sudo a2enmod ssl
sudo systemctl restart apache2
对于Nginx:
sudo apt install nginx
编辑PHP的配置文件php.ini
,进行以下设置:
display_errors Off
log_errors On
error_reporting E_ALL & E_NOTICE & E_DEPRECATED & E_STRICT & E_USER_NOTICE & E_USER_WARNING
safe_mode On
safe_mode_allowed_classes "mysqli,pdo_mysql"
exec()
,system()
等。disable_functions exec,system,passthru,shell_exec,popen,curl,fsockopen,file_get_contents,mkdir,rmdir,rename,unlink,chmod,chown,chgrp,date,time,localtime,gmtime,isset,empty,is_array,is_object,is_resource,is_string,is_int,is_float,is_bool,is_callable,assert
open_basedir
限制PHP可以访问的系统目录。open_basedir /var/www/html:/tmp
allow_url_fopen
和allow_url_include
。allow_url_fopen Off
allow_url_include Off
location /(uploads)/.*\.(php|php5|jsp) {
deny all;
}
使用预编译扩展:尽量使用预编译的扩展,而不是从源代码编译,以减少潜在的安全风险。
限制文件访问权限:确保你的应用程序文件和目录具有适当的访问权限,以防止未经授权的文件访问。
sudo chown -R www-data:www-data /path/to/your/php/applications
sudo chmod -R 755 /path/to/your/php/application
composer update
使用诸如PHP Security Advisories Checker(PHPSA)之类的工具来扫描你的代码,查找潜在的安全问题。
使用强密码:为用户和root账户设置复杂且难以猜测的密码。
限制root登录:禁止直接通过SSH登录root账户。
安装防火墙:使用UFW(Uncomplicated Firewall)并配置防火墙规则。
sudo apt install ufw
sudo ufw enable
sudo ufw allow 'Apache Full'
使用Fail2ban:保护系统免受暴力破解攻击。
定期备份:定期备份重要数据,以防止数据丢失。
通过上述措施,可以显著提高Ubuntu下PHP应用程序的安全性,有效防范常见的网络攻击和安全威胁。