justenough / craft-envfield
CraftCMS纯文本字段的即插即用替换方案,支持环境变量,包括自动建议
1.0.2
2022-02-17 15:59 UTC
Requires
- php: ^7.4 | ^8.0
Requires (Dev)
- craftcms/cms: ^3.6
- friendsofphp/php-cs-fixer: ^3.0
- phpstan/phpstan: ^1.4
README
是什么?
提供(几乎完全)即插即用的Craft内置纯文本字段的替换方案,支持环境变量,包括可选的自动建议。
为什么?
有时您有一些需要按条目管理的值,但这些值需要根据环境(例如,外部系统/ API中的ID)而变化。此字段允许您将这些ID存储在环境变量中,并在在不同环境之间移动数据时使一切按预期工作。
* 不支持多行纯文本字段
注意
环境变量可能包含敏感信息,包括密码和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
谁?
图标由Vectorstall提供 来自Noun Project