Comments 21
YII_DEBUG=true
Это видно по значку в правом нижнем углу экрана, а этот режим как раз и служит для отображения ошибок разработчику. В production всегда должно быть YII_DEBUG=false, и это уже ошибка разработчика если он такое допустил.
И ко всему тот, кто использует в PHP суперглобальный массив
нужно знать APP_KEY из .env
Если мы можем видеть env переменные, то у нас сильно больше проблем, так как там данные доступа к БД и тому подобное)
Нигде, эти «секреты» должны передаваться через переменные окружения, а потом конфиг должен быть закеширован в виде огромного массива со статическими значениями https://laravel.com/docs/7.x/configuration#configuration-caching
Насколько помню файлик будет лежать в bootstrap/cache
опять же в случае работы через переменные окружения не все фреймворки будут уязвимыми от утечки кэша. симфони например не кэширует env переменные при дампе кэша, насколько я знаю
Этого файла в принципе не должно быть на сервере.
Не давайте вредных советов — этого файла просто не должно быть в веб доступе.
Впрочем, убедиться, что он не доступен для веб-сервера, должно быть достаточно для большинства
Мы можем видеть файл .env, только если настроен неправильно сервер…
Лично я храню проект, например в папке laravel, а рядом с этой папкой есть символическая ссылка с именем моего домена, которая указывает на laravel/public… Таким образом, к файлу env нет доступа, потому что он находится выше уровнем… Также нужно настроить права доступа…
Но этот подход я придумал из-за особенностей хостинга jino, на других хостингах можно найти более хорошее решения…
Потому что 7.1 и старше уже официально не поддерживаются, при этом 7.2 хоть и получает патчи безопасности, но в ноябре и она тоже прекратит поддерживаться.
https://www.php.net/supported-versions.php
По этому, можно было бы сказать о том, что «проект дорого переводить на 7+», но в комментариях о проблемах безопасности лучше уточнять, как мне кажется, что если и переезжать, то на актуальные версии. Это то что касается самого языка.
А по поводу эникейщиков это да. Фрэймворк может быть и без уязвимостей. Но это никак не защитит от эникейщика который может целенаправленно, по не знанию, включать что-то что станет той самой дырой, через которую и получится нанести какой либо ущерб.
Выводом этого трэда можно сделать следующее: обновляйтесь, при этом читайте что приедет в обновлении. Там могут быть как патчи безопасности, так и ломающие какое-то поведение. При этом следите за обновлением не только языка и библиотек в проекте, но и за остальными компонентами окружения. Потому что сюрприз может приехать с любой стороны.
Уязвимости PHP-фреймворков