justenough/craft-envfield

CraftCMS纯文本字段的即插即用替换方案,支持环境变量,包括自动建议

安装: 149

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:craft-plugin

1.0.2 2022-02-17 15:59 UTC

This package is auto-updated.

Last update: 2024-09-17 21:46:20 UTC


README

是什么?

提供(几乎完全)即插即用的Craft内置纯文本字段的替换方案,支持环境变量,包括可选的自动建议。

为什么?

有时您有一些需要按条目管理的值,但这些值需要根据环境(例如,外部系统/ API中的ID)而变化。此字段允许您将这些ID存储在环境变量中,并在在不同环境之间移动数据时使一切按预期工作。

Example #1

Example #2

* 不支持多行纯文本字段

注意

环境变量可能包含敏感信息,包括密码和API密钥。此插件是针对一个非常特定的用例设计的。

如果不小心使用,该字段类型会使从环境变量泄露信息到前端模板变得极其容易。根据泄露的值,这可能导致非常糟糕的事情发生。

此插件尽量不帮助您自己射中脚跟,会自动过滤自动建议的环境变量名称,以移除在正常使用过程中不太可能用作字段值的常见敏感值(有关详细信息,请参阅下面的配置部分),但最终您应对此插件的使用负责。

请确保...

  • 使用Craft的权限和用户组来确保只有知道自己在做什么的管理员/编辑才能编辑使用此字段类型的字段
  • 为字段添加适当的说明/提示(提供合理的、可配置的默认值)
  • 仅在使用此字段类型时,无法通过配置文件(如config/general.php)静态引用环境变量
  • 检查默认的excludePattern是否适合您的环境,并根据需要调整它
  • 使用includePattern配置选项来列出尽可能使用的环境变量名称

不要

  • 做愚蠢的事情

如何?

要求

此插件需要Craft CMS 3.5或更高版本。它可能与较旧版本一起工作,但尚未与它们进行测试。

此插件需要PHP 7.4+

安装

cd /path/to/project
composer require justenoughco/craft-envfield
./craft plugin/install envfield

然后,创建一个新字段或将现有纯文本字段的类型更改为“环境变量感知纯文本”。这应该是安全的,因为所有纯文本字段设置都得到了保留,即使在使用作为环境字段时不可用,但转换现有字段时,请首先在生产之外进行测试。

字段设置

除了内置的纯文本字段设置外,此字段还允许设置以下设置:

  • 警告:显示在字段下方。默认为有关泄露敏感信息的警告。

配置设置

安装时,将创建一个config/envfield.php文件。您可以使用该文件来调整以下设置:

[
    /* 
        Blocklist pattern 
        
        Regex used to preprocess the autosuggest list of all environment variable names to remove sensitive values

        (enabled by default)
    */
    'excludePattern' => '/^\$(CONTENT|DOCUMENT|DB|HTTP|SERVER|REDIS|GPG|SCRIPT|REMOTE|REQUEST|PHP|PHPIZE|PATH|SECURITY|FCGI)_|^\$(GATEWAY_INTERFACE|HOME|PATH|PWD|REMOTE|TERM|USER)$/i',
    /* Clearlist pattern

        Regex used to preprocess the autosuggest list of all environment variable names to allow only specific values / prefixes into the autosuggest list

        (not enabled by default, set `excludePattern` to falsy to use)
    */
    // 'includePattern' => null
]

将过滤掉的环境变量

  • 不会出现在环境变量感知纯文本字段的自动建议列表中
  • 如果手动输入到环境变量感知纯文本字段中,则触发验证错误

许可

MIT

谁?

Just Enough Consulting提供

图标由Vectorstall提供 来自Noun Project