跳到主要内容
版本:v0.19

快速上手指南

先用报告模式开始。扫描器会检查文件,并在不更改项目的情况下记录其发现。

开始前

确认系统中安装了 PHP 7.4 或更高版本:

php --version

安装 中所述,下载当前发行文件,然后将其放置在你计划扫描的目录之外。

扫描项目

针对项目根目录运行扫描器:

php scanner /var/www/example --lite --report

/var/www/example 替换为实际路径。Windows 下,路径中包含空格时请加引号:

php scanner "C:\Sites\example" --lite --report

这个命令使用了两个选项:

  • --lite 在保留广泛检测能力的同时,减少常见误报。
  • --report 防止交互式文件操作,并写出报告。

默认报告路径是 ./scanner-report.html。打开该文件,在浏览器中查看每个发现,并检查其源代码上下文,然后再决定是否采取行动。

选择扫描模式

模式选项最佳用途权衡
完整无模式选项事件响应和深度调查产生最多发现
精简--lite, -l实用的首次扫描会跳过部分噪声模式
仅签名--only-signatures, -sWordPress 和已知恶意软件检查可能漏掉可疑的自定义代码
仅漏洞利用--only-exploits, -e风险代码模式审查可能产生误报
仅函数--only-functions, -f危险 PHP 调用审计仅凭函数名缺乏上下文

不要在不了解过滤器相互作用的情况下组合模式。对于不熟悉的代码库,先使用 Lite,然后在需要更广泛覆盖时再运行完整扫描。

阅读发现结果

在采取任何行动前,先检查这些细节:

  1. 文件路径: 确认这是你原本打算扫描的应用文件。
  2. 检测类型: 签名的置信度与通用漏洞利用模式或危险函数不同。
  3. 匹配代码: 检查周围的函数、类或模板。
  4. 完整性结果: 已修改的供应商或平台文件值得更密切关注。
  5. 最近更改: 与版本控制、可信发行版本或已知备份进行比对。
发现需要上下文

一个合法插件、部署脚本或维护工具可能会使用与恶意软件相似的代码。在修改它之前,先确认文件的来源和用途。

对确认的发现采取行动

交互式扫描可以显示源代码,跳过某个发现,将其加入白名单,清理代码,隔离文件或删除文件。优先选择可逆操作。

操作效果推荐用途
显示源代码显示周围代码首次审查步骤
跳过保持文件不变你还需要更多证据
白名单抑制已接受的匹配你已验证该发现的准确性
清理显示差异并验证 PHP 语法恶意片段已被隔离
隔离将文件移出原位置你已确认站点在没有它的情况下可以运行
删除移除文件备份已存在并且文件已确认是恶意软件

在任何可能修改文件的扫描前使用 --backup

php scanner /var/www/example --lite --backup

常见后续步骤

创建机器可读报告

php scanner /var/www/example --lite --report --report-format=json

可用的报告格式包括 HTML、文本、JSON 和 SARIF。

排除生成文件

php scanner /var/www/example --lite --report --ignore-paths="*/cache/*,*/logs/*"

扫描所有扩展名

php scanner /var/www/example --scan-all --report

此选项会增加扫描时间,并可能检查二进制或生成内容。对于大型项目,请使用路径过滤器和文件大小限制。

继续

浏览 命令行参考 以了解报告、归档、FTP、WordPress 数据库、路径和自动化选项。WordPress 管理员可以使用 仪表板指南