繁体   English   中英

PHP-FPM & xDebug:GitHub Actions 去除了 oAuth2 client_secret

[英]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

该错误消息是我的,在此处触发
我什至断言它是一个stringBaseTestCase


基于其他一些问题,它似乎没有被剥离,除非在过去几个月中发生了一些变化。 但是,我仍然不明白设置可能有什么问题。


同时我的理解是,只有使用php-fpmxdebug的跑步者会受到影响,因为我只是偶然发现了这个极其相关的讨厌细节,我什至没有寻找:

PHP-FPM 有一个clear_env配置。

那里的警告准确地描述了这种行为,突然之间这一切又变得有意义了。

所以问题实际上是:

如何克服 GitHub 跑步者中的 PHP-FPM clear_env配置?

一个简单的方法是将这些秘密环境变量渲染到 JSON 文件中,这样 PHP-FPM 在运行xdebug时不会再将它们视为环境变量(它看起来不太与安全相关,当它可以绕过就这么简单)。 但是,我对答案不太满意,仍然会接受并赏金任何更好的答案,它在没有这种解决方法的情况下回答了上述问题。 知道发生了什么对我来说已经很有价值了。

请注意,这很可能会变成安全风险,例如。 使用xdebug.mode=trace运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM