Я пытался понять, как работа сессий в PHP и нашла, что данные сессии по умолчанию хранятся в файловой системе. В общей среде хостинга данные сессии могут быть считаны Сценариями PHP, записанными любым пользователем. Как это может быть предотвращено?
Зависит от уровня доступа к файлу php.ini - если вы находитесь на общем хостинге, который запускает suPHP и позволяет вам иметь свой собственный файл php.ini (например), то вы можете просто установить session.save_path в путь типа ~/tmp вместо /tmp, который обычно является общим.
Начнем с того, что я не думаю, что вы можете читать данные php сессии из других приложений. Я считаю, что это нечто уникальное для того, кто их просматривает.
Наконец, данные сессии php сохраняются не только в файловой системе. Они также могут быть настроены на сохранение в cookie на машине пользователя, или вы можете настроить хранение данных сессии php в базе данных.
Используйте session_save_path () и измените папку сеанса, например "/ htdocs / storage / sessions". Теперь сеансы сохраняются только по указанному вами пути.
Вы можете переопределить обработчик сохранения сессии для вашего сценария, чтобы использовать что-то другое, кроме файловой системы, например, базу данных или memcache. Вот подробная реализация: http://phpsec.org/projects/guide/5.html
Напишите свою собственную оболочку SESSION.
Например, библиотека сеансов CodeIgniter не зависит от собственной библиотеки PHP и более безопасна:
Примечание: класс Session не использует собственные сеансы PHP. Он генерирует собственные данные сеанса, предлагая разработчикам большую гибкость.
Вы можете использовать session_save_path () , чтобы изменить каталог данных сеанса на тот, который не является общим.