PHP服务器安全加固:端口与敏感数据防护实战
|
PHP应用常部署在Linux服务器上,端口暴露与敏感数据泄露是两大高频风险。默认情况下,Apache或Nginx可能监听0.0.0.0:80/443,甚至意外开放22(SSH)、3306(MySQL)等管理端口,为攻击者提供入口。应严格限制服务绑定地址:将Web服务配置为仅监听127.0.0.1或内网IP,公网流量统一经反向代理(如Nginx)转发,并在代理层启用HTTPS、HTTP/2及HSTS头,避免明文传输。 防火墙是第一道防线。使用ufw或firewalld关闭所有非必要端口,仅放行业务必需端口(如443、80),并禁止外部直接访问数据库端口。例如:ufw deny 3306;ufw allow from 192.168.1.10 to any port 3306(仅允许可信内网IP连接)。同时禁用root远程登录,改用密钥认证的普通用户+sudo权限管理,杜绝弱口令爆破风险。
AI生成内容图,仅供参考 PHP配置文件php.ini需重点加固。关闭display_errors(设为Off),防止错误信息泄露路径、版本或数据库结构;开启expose_php=Off,隐藏X-Powered-By头;设置open_basedir限制脚本可访问目录范围,避免目录遍历;禁用危险函数如exec、system、shell_exec、passthru,可通过disable_functions指令批量屏蔽。这些修改后务必重启PHP-FPM或Web服务生效。 敏感数据包括数据库凭证、API密钥、JWT密钥等,绝不可硬编码在代码中。应将配置项提取至环境变量(如使用$_ENV或getenv()读取),配合.env文件(被.gitignore排除)或系统级环境变量管理。数据库连接密码建议使用加密存储(如Vault或本地AES加密),运行时解密加载。同时确保.gitignore包含config.php、.env、.key等文件,防止误提交到代码仓库。 Web根目录外存放敏感资源是基础实践。将vendor目录、config目录、日志文件、上传临时目录全部移出public/或web/之外,仅通过index.php统一入口路由访问。上传目录需禁用PHP解析:Nginx中添加location ~ ^/uploads/.\\.(php|php5|phtml)$ { deny all; };Apache中则在对应目录.htaccess写入php_flag engine off。上传文件强制重命名(如SHA256+时间戳),校验MIME类型而非仅依赖扩展名,防范WebShell注入。 定期审计是持续防护的关键。使用工具如Lynis扫描系统基线,用phpsecinfo检查PHP配置弱点,结合OWASP ZAP对应用做被动扫描。重点关注phpinfo()页面是否暴露、备份文件(.bak/.swp)是否可下载、目录列表是否开启(需在Nginx/Apache中显式关闭autoindex)。每次更新后验证配置有效性,避免加固措施因升级失效。 (编辑:云计算网_梅州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |


浙公网安备 33038102330479号