[英]PHP-FPM & xDebug: GitHub Actions strips out the oAuth2 client_secret
我最近为 GitHub 存储库(免费计划)设置了 PHPUnit 测试: ci-php.yml
。 这些测试在本地运行得很好,但是当触发工作流时,远程 API 总是抱怨client_secret
将丢失(由变量HUAWEI_APP_SECRET
填充)。 我已经尝试删除该环境的所有秘密,然后通过复制和粘贴再次设置它们。 与此同时,我不知何故怀疑,出于安全原因,它正在被剥离。 因此我想问一下,如果真的是这种情况 - 或者文档是否会 state,不是吗? 我已经尝试搜索,但到目前为止我找不到任何相关文档。
日志 output 还表明正在传递变量:
##[group***Run composer run-script coverage
composer run-script coverage
shell: /usr/bin/bash -e ***0***
env:
TEST_NAME: main
XDEBUG_MODE: coverage
HUAWEI_APP_SECRET: ***
HUAWEI_APPLICATION_CREDENTIALS: ***
PHPUNIT_HCM_TEST_DEVICE_TOKEN: ***
PHPUNIT_HCM_TEST_HMAC_VERIFICATION_KEY: ***
##[endgroup***
> export XDEBUG_MODE=coverage && vendor/bin/phpunit --bootstrap vendor/autoload.php --configuration coverage.xml --testsuite main
PHPUnit 9.5.11 by Sebastian Bergmann and contributors.
oAuth2 Error 1101 / 20171 -> missing required parameter: client_secret
该错误消息是我的,在此处触发
我什至断言它是一个string
: BaseTestCase
。
基于其他一些问题,它似乎没有被剥离,除非在过去几个月中发生了一些变化。 但是,我仍然不明白设置可能有什么问题。
同时我的理解是,只有使用php-fpm
和xdebug
的跑步者会受到影响,因为我只是偶然发现了这个极其相关的讨厌细节,我什至没有寻找:
PHP-FPM 有一个
clear_env
配置。
那里的警告准确地描述了这种行为,突然之间这一切又变得有意义了。
所以问题实际上是:
如何克服 GitHub 跑步者中的 PHP-FPM
clear_env
配置?
一个简单的方法是将这些秘密环境变量渲染到 JSON 文件中,这样 PHP-FPM 在运行xdebug
时不会再将它们视为环境变量(它看起来不太与安全相关,当它可以绕过就这么简单)。 但是,我对答案不太满意,仍然会接受并赏金任何更好的答案,它在没有这种解决方法的情况下回答了上述问题。 知道发生了什么对我来说已经很有价值了。
请注意,这很可能会变成安全风险,例如。 使用xdebug.mode=trace
运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.