نکته امنیتی: فقط از env() در فایل های Config استفاده کنید
شاید وسوسه انگیز باشد که در خارج از فایل های کانفیگ از env() استفاده کنید اما ممکن است که این روش باگ ریزی پیدا شوند و برنامه را در معرض خطر قرار دهید.
در لاراول 11 تعداد فایل های پیکربندی پیش فرض را کاهش می دهد و گزینه های بیشتری را مستقیما به فایل .env منتقل می کند.
اگر نیاز به استفاده از مقادیر موجود در فایل خود دارید، باید مطمئن شوید که فقط از تابع env() در فایل های config/*.php خود استفاده می کنید!
php artisan config:cache
این می تواند همه چیز را به طور کامل خراب کند، باگ های ریزی ایجاد کند یا حتی برنامه شما را در معرض خطر قرار دهد… این کد را در نظر بگیرید:
if ($request->token === env('APP_API_TOKEN')) {
// do sensitive stuff
}
اگر کانفیگ کش شود و کاربر یک رشته خالی را ارسال کند، لاراول آن را به null ، تبدیل می کند که منجر به null === null، می شود و توکن به طور کامل دور زده می شود!
این مقایسه باید با استفاده از روش hash_equals () به جای برابرهای دقیق (===) انجام شود. نه تنها hash_equals () در برابر حملات زمانبندی محافظت میکند، بلکه به ورودیهای string نیز نیاز دارد که بهرهبرداری از آن را سختتر میکند.