smile_support / adv_audit
1.3.1
2020-10-13 20:32 UTC
Requires
- blocktrail/cryptojs-aes-php: ^0.1.0
- drupal/coder: ^8.2
- google/apiclient: ^2.0
- kriswallsmith/buzz: ^0.16
- mikehaertl/phpwkhtmltopdf: ^2.3.1
- mpdf/mpdf: ^8.0
- php-http/curl-client: ^1.7
- sensiolabs/security-checker: ^5.0
- spirit-dev/php-sonarqube-api: ^0.0.4
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_entity
和adv_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模块