Jakým jiným způsobem se mají předávat? Kromě toho, že proměnné prostředí nemusíš použít na nic, tak nejsou zrovna něco, co může jen tak cestovat éteru. Větší problém je, že PHP se i v roce 2023 chová pořád jako lepší šablonovací systém. Všechno, co normální jazyk vypíše na stdout, se v PHP dostane do prohlížeče. Zatímco v jiných jazycích člověk velmi precizně určuje, co má jít ven a co naopak do logu, tak v PHP je výchozí chování to, že všechno jde ven. To, že pouhým uvedením "phpinfo()" do nějakého souboru dojde k vyzrazení veškerých detailů o systému je větší problém, než předávání hesel přes proměnné prostředí.
Pokud si dobře pamatuji, tak tohle chování, včetně celého phpinfo šlo zakázat prostou změnou v konfiguračním souboru. Že se to tak neděje je věc jiná.
$ php -r 'phpinfo();'
PHP Fatal error: Uncaught Error: Call to undefined function phpinfo() in Comman
d line code:1
Stack trace:
#0 {main}
thrown in Command line code on line 1
Nenechávat v ENV povalovat secrety napospas všem procesům v tom kontejneru je prostě jednou z vrstev zabezpečení. Kdo to udělal, ten nemá problém ani přes selhání vývojáře 3rd party knihovny, který tam nechal ladící kus a selhání vývojáře owncloudu, který tu knihovnu nasadil a neprověřil.
A je to zcela nezávisle na jazyku. Díra, která umožní vymámit z serveru ENV může být klidně ve webserveru.
No to není vrstva zabezpečení. Vrstva zabezpečení je třeba nepouštět ven všechno, co pošlu na stdout.
"selhání vývojáře owncloudu"
"selhání vývojáře 3rd party knihovny"
Nikdy to není selhání jednoho člověka. Pokud to tak u vás je a ukazujete prstem př každém problému, tak sice máte toxické pracovní prostředí, ale nulovou bezpečnost.
Jedna věc je díra, druhá věc je design flaw.
V linuxu je ale kazdy proces krome initu forkem jineho procesu, takze nevim, jak presne to myslite :-)
Ale docela umim. Treba podle vaseho komentu poznam, ze vy znate jen kontejnerove technologie, kde se to dela vetsinou jak pisete (docker, podman) a jine, kde je bezne mit v kontejneru v podstate cely OS krome kernelu, tedy treba LXC/LXD) vubec neznate :-)
> ownCloud admin password
Nemělo by být hashované a vůbec se na serveru nenacházet? :-) (ale chápu že třeba nemají vhodné interní API a takhle to obcházejí)
No tam je problem to, jakym zpusobem se ten kontejner spousti... ty promenne pri nevhodnem nastaveni leaknout muzou...