smile_support/adv_audit

安装: 14

依赖者: 0

建议者: 0

安全: 0

类型:drupal-module

1.3.1 2020-10-13 20:32 UTC

This package is not auto-updated.

Last update: 2024-09-30 08:31:19 UTC


README

Smile开发的Drupal 8审计工具。

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

安装

先决条件

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

  • composer
  • 通过composer安装Drupal

安装过程

  • 运行composer require smile_support/adv_audit命令。
  • 模块将被安装到module/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存储由插件创建的问题数据,如果某些检查点返回失败状态。

报告通过批量运行。也可以从其自己的设置表单运行特定的检查点。

如果插件失败状态在项目的上下文中是误报,则可以忽略问题。

报告可以导出为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模块