adyax_support/adv_audit

此包已被废弃,不再维护。作者建议使用 smile_support/adv_audit 包。

安装: 995

依赖项: 0

建议者: 0

安全: 0

类型:drupal-module

1.3.1 2020-10-13 20:32 UTC

This package is not auto-updated.

Last update: 2024-09-02 08:13:55 UTC


README

Smile 开发的 Drupal 8 审计工具。

该模块允许检查项目的重要信息。

安装

先决条件

要在您的项目中设置此模块,您将需要以下工具列表

  • composer
  • 通过 composer 安装 Drupal

安装过程

  • 运行 composer require smile_support/adv_audit 命令。
  • 模块将被安装到模块/contrib 目录,所有依赖项都在项目的 vendor 文件夹中。

编写新插件的说明

高级审计 模块使用插件系统,其中每个插件实现一个检查点。该模块使用自己的插件类型,其插件管理器为 src/Plugin/AuditPluginsManager.php。插件放置在 /src/Plugin/AuditPlugins/ 文件夹中。

模块需求

某些插件需要适当的模块。如果这些模块没有在项目中安装,插件将被跳过。要求设置在每个需要它的插件的注释中。

 *   requirements = {
 *     "module": {
 *       "features",
 *        ...

插件注释的描述

  @AuditPlugin(
   id = "cron_settings",
   label = @Translation("Cron settings"),
   category = "performance",
   requirements = {},
  )
  • id - 插件 ID(一个唯一的机器名)。
  • label - 可读名称。
  • category - 插件的分类 ID。所有可用的分类在 /config/install/adv_audit.settings.yml 中描述。
  • requirements - 插件需要的依赖项数组。如果未满足要求,插件将被标记为 跳过

每个插件都有自己的配置文件 /config/install/adv_audit.plugins.{plugin_id}.yml。此配置文件包含值

messages:
  description: "<p>This is description of plugin jobs</p>"
  actions: "<p>Each key supports %placeholders</p>"
  impacts: ""
  fail: ""
  success: ""
settings:
  enabled: 1|0
  severity: low|normal|high
help: ''
  • messages - 报告中出现的消息取决于插件的结果。可以在插件设置表单中覆盖。
  • 设置
    • enabled - 插件的状态。可以在插件设置表单中覆盖。
    • severity - 默认严重级别。可以在插件设置表单中覆盖。

主插件的 perform() 方法应返回状态 success()fail()skipped()。如果插件返回失败状态,则问题应传递给第二个参数

...
      return $this->fail('Reason why plugin has been failed', [
        'issues' => [
          0 => [
            '@issue_title' => 'There are we have some problems in @some_string.',
            '@some_string' => $some_string,
          ],
        ],
        '%link' => Link::createFromRoute($this->t('pass placeholders to messages in config file'), 'needed.route')
          ->toString(),
      ]);

issues@issue_title 是必需的。问题支持占位符。也可以将占位符传递给 messages 作为第二个参数的附加元素

[
  'issues' => [$list_of_issues],
  '%placeholder_for_messages' => 'Placeholder text',
  '%second_placeholder_for_messages' => 'Or link',
  ...,
]

架构

实体

  • adv_audit
  • adv_audit_issue

审计报告存储在 adv_entityadv_audit_issue 实体(可修订)中。

  • adv_audit 实体存储关于审计结果的数据。
  • adv_audit_issue 存储由插件创建的问题数据,如果某些检查点返回 failed 状态。

报告是通过批处理运行的。也可以从它自己的设置表单中运行特定的检查点。

如果插件失败状态在项目上下文中为假阳性,则可以忽略问题。

可以将报告导出为 PDF 或 Google 文档。

渲染报告

每个报告都是一个特定的 adv_audit 实体。\Drupal\adv_audit\Renderer\AuditReportRenderer 从实体存储加载数据并将其渲染到模板。

可用的检查点

1. 性能

  • 检查 php max_execution_time 设置
  • Cron 设置
  • ImageAPI 优化
  • JavaScript & CSS 聚合
  • Memcache/Redis 设置
  • 性能模块状态
  • Views 性能设置
  • 页面缓存性能
  • 数据库使用
  • Solr 使用
  • 内存使用检查
  • 页面速度洞察

2. 服务器配置

  • 发行说明 & 帮助文件
  • PHP 版本
  • 分析看门狗日志。
  • 检查Opcache

3. 安全性

  • 错误被写入屏幕。
  • PHP注册全局变量
  • 可信主机设置
  • 检查用户表是否包含匿名用户
  • 不安全扩展
  • 管理员页面访问检查
  • 未找到敏感的临时文件。
  • 不可信角色的权限
  • 安全代码审查
  • SSL测试
  • 危险标签
  • 检查视图是否受访问控制。
  • 检查账户设置
  • 公共目录中的PHP文件不能被执行。
  • 匿名用户权限
  • 文本格式中允许的HTML标签
  • 检查出于安全原因必须的模块
  • 管理员名称检查

4. Drupal核心和贡献模块

  • 不需要数据库更新
  • 模块安全更新
  • 配置管理器
  • 修复后的Drupal核心。
  • Drupal核心
  • 模块非安全更新
  • 修复后的模块。
  • 功能状态

5. 架构分析

  • 检查项目是否存在CI/CD
  • 检查项目上的文件结构。
  • 检查项目是否使用composer。

6. 代码审查(自定义模块和主题)

  • 通过CodeSniffer进行代码审计
  • 审计代码异味、代码复杂性。代码指标和潜在问题

7. 其他建议

  • 检查数据库表引擎。
  • 检查环境设置。
  • 检查SEO建议:贡献模块和robots.txt。
  • 检查终极cron模块