如何审计网站识别未被引用文件?求自动化扫描工具推荐
扫描代码仓库中未被引用文件的工具与方法
IDE 内置方案(快速上手)
- PhpStorm/WebStorm:右键点击项目根目录,选择「Find in Path」,勾选「File Mask」为
*.php(或对应项目文件类型),用\b[文件名]\b正则匹配避免部分匹配,批量筛选未被引用的文件;也可使用「Inspect Code」功能,启用「Unused declaration」相关规则,IDE会自动标记未被引用的文件和代码。 - VSCode:安装
find-unused-files插件,配置好目标文件类型、排除目录(如vendor、node_modules)后,插件会自动扫描并列出未被引用的文件,替代手动逐个搜索。
命令行工具(适合批量自动化)
- ripgrep:结合shell脚本批量检查文件引用情况,比原生grep更快。示例bash脚本:
安装ripgrep后运行脚本,即可输出所有未被引用的PHP文件。#!/bin/bash # 遍历当前目录下的php文件(排除vendor目录) find . -type f -name "*.php" ! -path "./vendor/*" | while read -r file; do filename=$(basename "$file") # 搜索文件名是否在其他文件中出现(排除自身) if ! rg -q "$filename" . --glob '*.php' --glob '!'"$file"; then echo "未被引用的文件: $file" fi done - php-unused:专为PHP项目设计的扫描工具,分析项目依赖关系,识别未被引用的类、函数和文件。在项目根目录运行
php-unused,会生成详细报告列出未使用的文件和代码元素。
注意事项
- 提前排除依赖目录、配置文件、日志文件等,避免误判。
- 动态引用的文件(如
include($variable)这类变量拼接路径的情况),工具可能无法准确识别,需手动核对。 - 操作前备份代码,再根据扫描结果处理文件,避免误删有效代码。
内容的提问来源于stack exchange,提问作者Erin Tripp
相关产品推荐
相关产品推荐

