phpinfo页面被搜索引擎收录怎么办_安全隐藏技巧汇总【技巧】

15次阅读

应删除或重命名phpinfo.php等调试文件,通过Web服务器配置禁止访问,PHP代码中添加IP或密钥验证,robots.txt屏蔽爬虫,并清理cms/框架自动生成的调试页。

phpinfo页面被搜索引擎收录怎么办_安全隐藏技巧汇总【技巧】

如果您的 PHP 信息页面(phpinfo())被搜索引擎抓取并公开索引,攻击者可能利用其中暴露的服务器环境细节发起针对性攻击。以下是安全隐藏 phpinfo 页面的多种操作方法:

一、删除或重命名 phpinfo.php 文件

最直接有效的方式是移除该文件本身,避免任何访问路径存在。若需临时调试,应使用非公开命名且不包含常见关键词的文件名。

1、通过 FTP 或 ssh 登录网站根目录及子目录,搜索所有名为 phpinfo.phpinfo.phptest.php 的文件。

2、确认无业务依赖后,执行删除命令:rm -f phpinfo.php info.php test.php

立即学习PHP免费学习笔记(深入)”;

3、如需保留调试能力,将文件重命名为含随机字符串的名称,例如:a7x9k2_debug_env.php,并确保该名称未在代码中硬编码引用。

二、通过 Web 服务器配置禁止访问

利用 apachenginx 的访问控制机制,在服务端层面拦截对 phpinfo 页面的 http 请求,即使文件存在也无法被读取。

1、对于 Apache 环境,在站点根目录的 .htaccess 文件中添加以下规则:

require all denied

2、对于 Nginx 环境,在 server 块内插入 location 匹配规则:

location ~* ^/(phpinfo|info|test).php$ { return 403; }

3、修改后重启对应服务:systemctl restart apache2systemctl restart nginx

三、在 PHP 代码中增加访问限制

通过逻辑判断控制 phpinfo() 函数仅在特定条件下执行,例如限定本地 IP 或需携带密钥参数,从应用层降低暴露风险。

1、打开原 phpinfo.php 文件,将裸调用 phpinfo(); 替换为条件判断结构。

2、添加白名单 IP 检查:if ($_SERVER[‘REMOTE_ADDR’] !== ‘127.0.0.1’ && $_SERVER[‘REMOTE_ADDR’] !== ‘::1’) { die(‘Access denied’); }

3、或启用密钥验证方式:if (!isset($_GET[‘key’]) || $_GET[‘key’] !== ‘Xy7mQp2’) { die(‘Unauthorized’); },访问时需手动附加 ?key=Xy7mQp2

四、使用 robots.txt 屏蔽爬虫抓取

虽不能阻止恶意直接请求,但可防止主流搜索引擎持续收录 phpinfo 页面,减少无意间暴露的可能性。

1、确认网站根目录下存在 robots.txt 文件;若无,则新建一个。

2、在文件开头添加禁止规则行:Disallow: /phpinfo.phpDisallow: /info.phpDisallow: /test.php

3、保存后通过浏览器访问 https://yourdomain.com/robots.txt 验证内容是否生效,确保无语法错误。

五、检查并清理 CMS 或框架自动生成的调试页

部分 wordPress 插件、laravel 开发模式、thinkphp 调试面板等可能在启用调试时动态输出 phpinfo 内容,需排查第三方组件行为。

1、登录 wordpress 后台,进入插件管理页,停用所有非必要插件,特别关注含 phpinfoserver infodebug 字样的插件。

2、检查 Laravel 项目中的 .env 文件,确认 APP_DEBUG=false 已设置,避免异常页泄露环境信息。

3、对 ThinkPHP 应用,查找 config/app.php 中的 show_error_msgapp_debug 参数,统一设为 false

text=ZqhQzanResources