温馨提示×

centos如何配置php安全设置

小樊
38
2025-03-03 09:52:10
栏目: 编程语言
PHP开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在CentOS系统中配置PHP安全设置,可以遵循以下步骤:

1. 更新系统和PHP

首先,确保你的系统和PHP都是最新的。

sudo yum update -y
sudo yum install epel-release -y
sudo yum install php php-mysqlnd php-gd php-xml php-mbstring php-pear php-bcmath -y

2. 配置PHP安全设置

编辑PHP的配置文件/etc/php.ini。你可以使用任何文本编辑器,例如vinano

sudo vi /etc/php.ini

2.1 禁用危险函数

disable_functions指令中添加一些危险的函数,以防止它们被滥用。

disable_functions = eval,assert,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

2.2 设置错误报告

为了防止敏感信息泄露,建议将错误报告级别设置为E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_USER_NOTICE & ~E_USER_DEPRECATED

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED & ~E_USER_NOTICE & ~E_USER_DEPRECATED
display_errors = Off
log_errors = On
error_log = /var/log/php_errors.log

2.3 设置文件上传限制

限制文件上传的大小和类型,以防止恶意文件上传。

upload_max_filesize = 2M
post_max_size = 8M
file_uploads = On

2.4 设置会话安全

确保会话ID是随机生成的,并且会话数据存储在安全的位置。

session.cookie_secure = On
session.cookie_httponly = On
session.cookie_samesite = Strict
session.gc_maxlifetime = 1440

2.5 设置数据库连接安全

如果你使用的是MySQL数据库,确保连接是安全的。

mysqli.allow_local_infile = Off
mysqli.allow_persistent_connections = Off
mysqli.cache_size = 2000
mysqli.max_links = -1
mysqli.reconnect = Off

3. 重启Web服务器

根据你使用的Web服务器(如Apache或Nginx),重启相应的服务以应用更改。

Apache

sudo systemctl restart httpd

Nginx

sudo systemctl restart nginx

4. 使用安全模块

考虑使用一些安全模块来增强PHP的安全性。

ModSecurity

ModSecurity是一个开源的Web应用防火墙(WAF),可以保护你的PHP应用程序免受各种攻击。

sudo yum install mod_security -y
sudo systemctl enable mod_security
sudo systemctl start mod_security

PHP-FPM

如果你使用的是PHP-FPM,确保它也进行了适当的安全配置。

sudo vi /etc/php-fpm.d/www.conf

www.conf文件中,确保以下设置:

security.limit_extensions = .php .php3 .php4 .php5 .php6 .php7 .phtml .pl .py .jsp .asp .htm .shtml .sh .cgi

然后重启PHP-FPM服务:

sudo systemctl restart php-fpm

通过以上步骤,你可以显著提高CentOS系统上PHP的安全性。记得定期检查和更新你的系统和PHP版本,以保持最佳的安全状态。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:centos php配置中的安全设置

0