发布于2026-07-20 阅读(0)
扫一扫,手机访问
常见的PHP木马,通常就是那两行经典的“一句话”后门: 或者 。攻击者把它伪装成图片、日志文件上传到服务器,一旦执行,整个站点就等于拱手送人。那么,如何从根源上堵住这类漏洞?下面这几条配置思路,是经过实战检验的“硬防”措施。
先来看一个快速检测的笨办法:在服务器上跑一条命令,扫描所有文件里是否含有 eval( 关键字——这虽然不能100%抓到变种,但至少能筛掉一批低级的后门。
find ./ -type f -name "*" | xargs grep "eval("
但更关键的是,做好事前防御。下面四点建议,按优先级从高到低排列。
1. 禁止上传目录执行PHP
对于Nginx服务器,直接在配置中屏蔽 upload、images 这类目录的PHP执行权限。规则很简单:
location ~* ^/(upload|images)/.*\.(php|php5)$
{
deny all;
}
这样,即使攻击者把一个PHP文件伪装成 .jpg 上传到该目录,访问时也会被直接拒绝。
2. 阻断伪装后缀的脚本执行
很多利用文件上传漏洞的攻击,依赖的是 PHP 的 cgi.fix_pathinfo 特性。比如上传一个 shell.jpg,然后通过 shell.jpg/.php 这样的路径强制解析。所以首先要关掉这个开关:
; php.ini 中
cgi.fix_pathinfo = 0
同时,Nginx 端也要做一层校验:只允许真实存在的 .php 文件被解析,任何不存在的 .php 路径直接返回403。
location ~* .*\.php($|/)
{
if ($request_filename ~* (.*)\.php) {
set $php_url $1;
}
if (!-e $php_url.php) {
return 403;
}
}
3. 严格控制目录权限
除了上传目录和缓存目录,其他所有网站目录都赋予只读权限。这样即使后门被写入,也没法在非上传目录创建新文件或修改现有代码。
4. 限制PHP可执行函数
在 php.ini 中,通过 disable_functions 禁用掉那些高危的系统函数。以下是一组常用的禁用列表,可以根据实际业务需求调整:
disable_functions = phpinfo, system, passthru, shell_exec, exec, popen, proc_open, chroot, scandir, chgrp, chown
或者更严格一些:
disable_functions = phpinfo, exec, passthru, shell_exec, system, proc_open, popen, curl_exec, curl_multi_exec, parse_ini_file, show_source
甚至:
disable_functions = phpinfo, exec, system, passthru, popen, pclose, shell_exec, proc_open, dl, curl_exec, multi_exec, chmod, gzinflate, set_time_limit
这几组列表各有侧重,核心思路就是不让攻击者通过后门执行系统命令、读取敏感文件或发起网络请求。当然,具体禁用哪些,还得看项目里有没有用到对应的函数。
最后提醒一句:安全配置不是一劳永逸的。定期检查服务器日志、更新PHP版本、配合WAF规则,才能织成一张更密的防护网。
上一篇:cmd php 命令
下一篇:php6 配置,PHP6配置方法
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8