发布于2026-07-24 阅读(0)
扫一扫,手机访问
在Linux环境下部署PHP应用,安全配置永远是绕不开的话题。PHP本身功能强大,但如果你不加以约束,它也可能成为攻击者最趁手的工具。下面这些配置思路,是经过实战检验的,能有效帮你加固防线。

你可能会问,为什么非要禁用呢?其实,这就像给房子少开几扇门,攻击者自然就少了几条路可走。在php.ini中,把那些用不上的扩展(比如mysqli、pdo_mysql、curl等)直接注释掉就行。举个例子,如果你的应用只需要本地文件操作,那就把extension=curl.so这类网络相关扩展统统干掉。改完之后,别忘了重启PHP服务(sudo systemctl restart php-fpm),让配置生效。
php.ini里,把upload_max_filesize(单个文件最大大小,比如10M)和post_max_size(POST数据总大小,记得要比前面那个大,比如12M)设置好。别小看这一步,它能有效防止大文件上传导致的拒绝服务攻击。.jpg、.png),也要检查MIME类型(比如image/jpeg)。这样一来,恶意文件(比如.php后门)想混进来就难了。/var/www/html/uploads)的权限设为755,所有者指定为Web服务器用户(比如www-data)。最关键的是,要禁止执行权限,chmod -R 755 uploads走一波,确保上传的文件不能被执行。open_basedir限制脚本访问范围这一招很关键,相当于给PHP脚本画了个圈,避免它乱跑乱逛。在php.ini里设置open_basedir参数,把脚本限制在指定目录(比如/var/www/html),防止它访问系统敏感文件(比如/etc/passwd)。配置示例:
open_basedir = "/var/www/html:/tmp"
多个目录用冒号隔开,应用目录和临时目录(比如/tmp)都得包含进去。
php.ini里设置disable_functions,把那些能执行系统命令、操作文件的函数(比如system、exec、passthru、shell_exec、file_put_contents)统统禁掉。示例:disable_functions = system,exec,passthru,shell_exec,file_put_contentsdisplay_errors设为Off,别让错误堆栈信息暴露在攻击者面前。同时开启日志记录(log_errors = On),把错误信息写入安全目录(比如/var/log/php_errors.log),方便事后排查。php.ini里配置下面这些参数,防止会话劫持和CSRF攻击:session.cookie_secure = 1 # 仅通过HTTPS传输会话Cookie
session.cookie_httponly = 1 # 禁止Ja vaScript访问会话Cookie
session.cookie_samesite = Strict # 防止跨站请求伪造(CSRF)session_regenerate_id(true)(比如用户登录成功后),主动更换会话ID,防止会话固定攻击。这个比较简单粗暴,但很有效。在php.ini里把allow_url_fopen和allow_url_include都设为Off,禁止PHP通过URL访问远程文件(比如include 'http://example.com/config.php';),从根源上防止远程代码执行攻击。
sudo apt install php-suhosin装好后自动启用,你还可以通过php.ini调整配置(比如suhosin.session.encrypt = On加密会话数据)。sudo yum install mod_security
sudo systemctl enable mod_security
sudo systemctl start mod_security记得根据应用场景调整规则集(比如OWASP Core Rule Set)。这一条没什么好说的,保持更新就是最好的防御。定期通过包管理器更新PHP(比如Ubuntu用sudo apt update && sudo apt upgrade php,CentOS用sudo yum update php),获取最新的安全补丁,修复已知漏洞(比如PHP 8.1.x修复的远程代码执行漏洞)。
/var/www/html)的所有者设为Web服务器用户(比如www-data),权限设为755(目录)和644(文件),避免其他用户修改文件。示例:sudo chown -R www-data:www-data /var/www/html
sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;/var/www/html/config.php)、.env文件,权限要设为600,防止未授权读取。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8