Druscan 工具:20 分钟完成 Drupal 技术审计,守护敏感数据及更多功能

本文内容概览:

  • 挑战:如何在不暴露敏感数据的情况下估算Drupal项目成本?
  • 什么是Druscan,它是如何工作的?
  • Druscan在技术审计期间会收集哪些数据?
  • Druscan的技术审计中不包含哪些数据?
  • 技术要求有哪些,如何安装Druscan?
  • Druscan技术审计报告是什么样的?
  • 演示:Druscan技术审计在实际项目中如何运作
  • Druscan还有哪些其他用途?
  • 使用Druscan进行Drupal技术审计——总结

一、挑战:如何在不暴露敏感数据的情况下估算Drupal项目成本?

假设您运营着一个基于Drupal的系统,打算把维护工作委托给新公司。您可能还想从多家代理机构获取报价,以便将Drupal 8升级到最新版本,或者为一直自己维护的项目进行重大更改做准备。在这些情况下,提供基本的技术信息是很有必要的。

然而,发出提案请求后,一系列详细问题很快就会冒出来:安装了多少个模块?项目里有没有自定义模块?数据架构是什么样的?系统存储了多少内容?为了准确回答这些问题,公司通常需要访问数据库、代码仓库,甚至服务器。

而这才是真正问题的开端。数据库通常包含客户的个人数据,自定义代码反映了业务逻辑,配置文件存储着外部服务的API密钥。与多个实体共享这些资源存在风险。您无法确定谁会访问这些数据,以及它们将如何得到保护。

此外,准备精简版的数据库或代码可能会很耗时。另一方面,如果没有技术细节,代理机构就无法提供可靠的报价,他们可能会大幅高估成本,或者直接拒绝提供估算。

这就引出了一个关键问题:如何在不泄露敏感数据的情况下传达必要的技术信息?答案就是Druscan。

二、什么是Druscan,它是如何工作的?

Druscan是一个用于Drupal技术审计的开源工具,由成都长风云Drupal开发团队创建,并作为GitHub项目免费提供。它的诞生是为了能在无需与外部公司共享整个数据库或源代码的情况下,对系统进行可靠分析。

2024年,成都长风云Drupal开发团队还开发了一个专门用于分析从Drupal 7迁移项目的实用脚本。如果您还在使用这个版本并考虑迁移,可以在我们的博客文章中找到一个用于估算从Drupal 7迁移到Drupal11成本的工具。Druscan有类似的功能,但涵盖的数据和功能范围要广泛得多。

该工具会收集项目技术评估所需的所有信息,而不会泄露任何敏感数据。这能让您在确保信息安全的前提下,为评估或分析准备系统的完整概况。

三、Druscan在技术审计期间会收集哪些数据?

该工具会对Drupal系统进行自动技术审计,并从二十多个领域收集详细信息。以下是一些分析元素的示例。

(一)模块列表

Druscan会检索系统中安装的完整模块列表,区分Drupal核心模块、贡献模块和自定义模块。对于每个模块,它会记录版本、激活状态以及应用的补丁信息。

对于自定义模块,报告除其他信息外,还会包括代码行数和定义的路由数量。在后续更新中,该工具将扩展更多指标,同时仍不会泄露代码内容。

(二)内容架构

Druscan还会分析系统中的内容架构:内容类型、字段数量、分类法、媒体、用户和角色。它还会检查视图的配置,包括它们是页面、块还是其他类型。此外,它会验证工作流程和权限,以便更好地理解内容管理逻辑。

(三)性能指标

该工具会评估关键性能参数,测试是否符合WCAG标准,并分析事件日志(dblog)中记录的错误。它还会检查项目中是否有自动化测试,这可以作为代码质量和成熟度的重要指标。

(四)外部集成

Druscan通过分析负责与API或其他系统通信的模块,识别Drupal与外部服务的集成。收集的数据会以JSON和HTML格式保存到报告中,便于查看或用于进一步分析。

四、Druscan的技术审计中不包含哪些数据?

了解Druscan故意不包含在报告中的内容,和了解它收集的信息同样重要。该工具旨在保护Drupal系统中存储的所有敏感数据。

(一)无数据库内容

Druscan不会收集或存储数据库中的任何内容。文章、产品描述、用户数据或存储在Drupal表中的其他信息不会出现在报告中。该工具不会复制任何文本内容或业务数据。

(二)无自定义模块代码

报告中不包含自定义模块代码的内容。Druscan仅提供一般指标,如代码行数或模块存在的信息,而不会泄露业务逻辑。代码仍会得到充分保护。

(三)无API密钥

Druscan不会收集API密钥或任何可能导致未经授权访问外部系统的配置元素。敏感设置仍会保留在您的环境中。

(四)无文件或媒体

审计不涵盖系统中存储的多媒体文件或文档。报告中不会包含照片、附件或其他资源的列表。所有私人文件都不在分析范围内。

五、技术要求有哪些,如何安装Druscan?

Druscan在基于DDEV的环境中运行,因此要进行技术审计的Drupal系统应该使用它来运行。DDEV是一个本地开发工具,这意味着整个分析过程都在您的计算机上进行。没有数据会发送到外部服务器。

安装和运行扫描非常简单。在Druscan目录中,创建一个指向Drupal项目目录的符号链接,然后运行审计脚本。整个过程通常需要大约15 - 20分钟,具体取决于被分析网站的复杂程度,结果是生成一份完整的技术报告。

Druscan的两种操作模式:基本模式和带AI的高级模式

Druscan提供两种操作模式,让您可以根据项目的具体情况进行调整。

(一)基本模式:Shell脚本审计

在基本版本中,Druscan作为一个Shell脚本运行,收集系统的原始技术数据。然后您可以自己分析这些数据,或者将其传递给准备评估的代理机构。此模式除了DDEV之外,不需要任何其他额外工具。

要运行它,请使用两个参数调用命令:

  • 项目目录的名称
  • 网站URL(本地或生产环境)

URL用于执行页面速度测试和WCAG合规性分析等。

(二)高级模式:由AI驱动的分析和建议

第二种模式使用Cursor工具,该工具旨在在AI的支持下处理代码。在这种模式下,Cursor首先运行标准的数据收集脚本,然后根据生成的文件,创建分析和建议列表,并对各个任务进行时间估算。

要使用此模式,您必须首先在.cursor目录中准备配置,定义带有提示的适当命令。保存配置后,您可以通过输入斜杠(/)并从可用选项列表中选择准备好的命令来运行审计。

六、Druscan技术审计报告是什么样的?

如我上面所述,Druscan会从二十多个领域分析系统。生成的报告以两种格式呈现这些数据:

  • JSON – 适用于进一步的自动分析或AI工具
  • HTML – 一份清晰的报告,可以在浏览器中方便地查看

启动审计后,Audit Reports目录中会创建一个带有日期标记的新文件夹。随着工具的运行,后续的JSON文件会添加到该文件夹中,每个文件对应一个不同的分析领域,包括数据库信息、模块列表或可用更新等。

(一)报告主页

HTML报告的第一页是介绍页。它包含工具的工作原理说明,但尚未呈现被分析安装的具体数据。

(二)关于Drupal系统的信息

在这一部分,报告开始呈现关于Drupal系统的具体技术数据,包括:

  • 活动模块的数量
  • 模块版本和应用的补丁
  • 系统配置的总体概述

(三)可用更新

Updates Check部分显示哪些模块有可用更新,包括:

  • 功能更新(例如,Field Group 3.6 → 4.0)
  • 主要版本更改(例如,Flag 4.0 → 5.0)
  • 任何安全更新,会用红色清晰标记

如果所有模块在安全方面都是最新的,会出现一条清晰的绿色消息。

(四)数据结构(实体结构)

Entity Structure部分,Druscan会呈现系统中内容类型的详细信息:存在多少种类型,以及每种类型中创建了多少个项目。例如,报告可能显示有12篇文章和39份文档,以及关于其中有多少是在去年添加的额外信息。

这个指标非常有用,因为许多项目包含一些曾经为测试或单一功能创建的内容类型,但随着时间的推移不再使用。如果Druscan检测到某个内容类型在多个月内没有新的项目或编辑出现,就可以认为它是不活跃的,并在系统的进一步分析中忽略它。这使您能够更快地评估实际的内容结构,并整理不再需要的项目。

(五)自动图表

报告生成交互式图表,展示系统的结构。这些图表可以放大和移动。最重要的图表包括:

  • 主菜单的完整层次结构
  • 选定配置元素的结构

(六)数据库日志

在这一部分,您会找到dblog中记录的错误,以及与这些错误相关的模块信息。这是确定系统稳定性和需要关注的潜在问题的快速方法。

(七)AI部分(可选)

如果技术审计是在AI模式下运行的,报告中会包含一个带有建议的额外部分。它包括:

  • 最重要的改进事项列表
  • 优化建议
  • 安装的积极方面
  • 带有优先级和时间估算的行动项

与所有AI工具一样,建议由经验丰富的Drupal专家对这些建议进行验证。

七、演示:Druscan技术审计在实际项目中如何运作

为了展示Druscan在实际中的工作方式,我对两个本地启动的安装进行了分析:Drupal CMS 1.2.5版本和Open Intranet,后者是成都长风云Drupal开发团队用于构建企业内部网的启动项目。

(一)Druscan项目结构

GitHub上的Druscan仓库结构简单清晰。它包含:

  • 一个scripts目录,包含执行各个审计步骤的文件
  • 一个template目录,包含报告元素模板
  • 运行整个过程的主脚本(audit.sh文件)
  • 一个检查列表,报告基于此生成

您可以轻松自定义该工具以满足您的需求,例如添加新的分析元素或修改现有元素。

(二)准备环境

要运行审计,Drupal安装会作为符号链接添加到Drupal Sites目录中。每个符号链接直接指向给定站点的web目录。

在上述示例中,有两个项目:

  • cms-drupal
  • open-intranet

这使Druscan能够同时“看到”多个安装,并独立分析它们。

(三)在基本模式下运行审计

扫描通过调用脚本开始:

audit.sh <directory_name> <URL_address>

启动后,Audit Reports目录中会创建一个带有日期的新文件夹,其中会逐渐出现包含后续数据的JSON文件:

  • 首先是关于数据库和Drupal版本的信息(drush status结果)
  • 然后是完整的模块列表
  • 之后是可用更新
  • 然后是其他配置和指标项

包含模块信息的文件通常是最大的,因为它包含每个模块的详细信息。

此模式不需要Cursor。脚本可以在本地运行。

(四)在带有AI的Cursor模式下运行

第二种模式使用Cursor工具,您在其中定义触发审计的命令和描述分析方法的提示。输入斜杠(/)并选择准备好的Cursor命令后:

  1. 运行标准的Druscan脚本。
  2. 等待JSON文件生成。
  3. 使用AI对它们进行分析。
  4. 生成总结和建议。

对于Open Intranet安装,整个过程花费了约17分钟,之后生成了一份包含改进列表的完整分析报告。

(五)技术审计结果

以下是使用Druscan对两个不同Drupal安装进行审计的示例结果。

1. 对于Open Intranet系统

Open Intranet的报告显示:

  • 149个活动模块,包括版本、补丁和可用更新,例如Field Group(3.6 → 4.0)和Flag(4.0 → 5.0)
  • 没有安全更新(报告中显示绿色消息)

Entity Structure部分显示:

  • 12篇文章
  • 39份文档
  • 关于其中有多少是在去年创建的信息——这有助于评估哪些类型的内容实际被使用

报告还生成了清晰的图表,包括一个可以放大和移动的完整主菜单。日志中发现了17个错误,其中一个与EDSA模块有关,需要进一步诊断。

2. 对于Drupal CMS

第二份报告——针对Drupal CMS——是在基本模式下生成的,没有进行AI分析。关键信息如下:

  • EDSA模块有更新可用(2 → 3)
  • 系统使用了110个模块
  • 没有自定义模块
  • 内容类型:博客、案例研究、活动、新闻,以及每个类型的项目数量
  • 19个活动视图
  • dblog中没有错误,这证明了安装的稳定性

对该安装进行的Lighthouse测试得分为100/100,证实了其高性能优化。报告仅指出了与WCAG相关的一些小问题。

八、Druscan还有哪些其他用途?

虽然文章开头提到Druscan在准备报价或更换代理机构方面很有用,但它的应用范围要广泛得多。该工具在处理Drupal的许多日常场景中都能发挥很好的作用。

(一)新团队成员入职

当新开发人员加入项目时,Druscan可以让他们快速了解系统的结构。他们无需从头开始审查代码,而是会收到一份包含模块、内容类型、配置和架构信息的综合报告。当项目在团队之间转移时,这样的报告也很有用。它有助于知识转移,缩短实施时间。

(二)定期技术审计

我们的技术审计工具可以定期使用,例如每六个月一次,以监控系统的变化。比较连续的报告可以让您快速注意到:

  • 新添加或删除的模块
  • 不断增加的技术债务
  • 新出现的错误
  • 内容结构或配置的变化

这是跟踪项目发展并确定需要关注领域的实用方法。

(三)技术文档支持

技术文档往往会过时,尤其是在快速发展的项目中。Druscan通过生成系统架构的最新自动快照解决了这个问题。

虽然它不能替代完整的网站文档,但它是一个很好的补充,特别是当您需要:

  • 已使用模块的列表
  • 配置审查
  • 数据结构和内容类型

自动生成的报告始终反映系统的实际状态。

(四)技术债务评估

Druscan报告可以帮助您轻松确定项目中的技术债务水平。它会显示,除其他事项外:

  • 需要更新的模块数量
  • 过时的组件
  • 日志中出现的错误

这有助于更好地规划预算和维护计划。

(五)验证代理机构的工作质量

当您想评估为您的网站工作的代理机构的工作质量时,Druscan也会很有帮助。报告可以让您检查:

  • 系统是否定期更新
  • 日志中的错误数量是否在增加
  • 系统的结构是否保持一致和逻辑

这是项目技术状况的客观写照。在续签合同、更换供应商或开始更大范围的工作之前,审计报告尤其有价值。

九、使用Druscan进行Drupal技术审计——总结

Druscan不仅在更换代理机构的过程中有用。它是一个用于Drupal项目技术审计和文档创建的通用工具。它解决了行业中的一个根本问题——如何在不泄露敏感数据的情况下分享网站或系统的信息。

该工具提供了清晰的安装说明。如果您有任何问题,可以在“Nowoczesny Drupal”频道的视频下方提问,或者在GitHub上报告错误、提出改进建议或新功能需求。

如需了解有关我们工具的更多信息、报告的示例部分以及下载链接,请访问Druscan网站。