Drupal a problém s putenv()
Proč je funkce putenv() zakázaná?
Funkce putenv() mění prostředí PHP procesu, což může být zneužito k obejití bezpečnostních omezení nebo ke změně chování PHP běhového prostředí. Na produkčních prostředích jako jsou sdílené servery to představuje riziko pro ostatní weby na stejném serveru.
✅ Jak to obejít:
Drupal (nebo knihovny jako Symfony) typicky používají putenv() k načítání proměnných z .env souborů. Je možné to snadno obejít:
1. Nepoužívejte .env soubor – místo toho nastavte potřebné hodnoty přímo v souboru settings.php:
$_ENV['NAZEV_PROMENNE'] = 'hodnota';
$_SERVER['NAZEV_PROMENNE'] = 'hodnota';
2. Pokud používáte vlastní načítání .env, nahraďte ho ručním načtením bez putenv():
$env = parse_ini_file(__DIR__ . '/../.env');
foreach ($env as $k => $v) {
$_ENV[$k] = $v;
$_SERVER[$k] = $v;
}