Net.Ru
Новичок
Безопасность сессий в PHP-скриптах.
Уязвимость локального характера, характерна только для shared-хостинга. Т.е. снаружи злоумышелнник ее использовать не может, может только сосед по хостингу, или злоумышленник, сломавший соседа и взявшийся за вас.
Уязвимость относится к древнему виду tmp file attack, когда для хранения временных файлов используется общий каталог, работать с которым разрешено всем. Атака основана на чтении, изменении или создании временных файлов, используемых различными программами и скриптами.
Решения для сессий PHP такое же как и для всего класса tmp file attack:
1. Ограничивать доступ к временному файлу, проверять, что временный файл принадлежит именно нам, не был изменен и т.д.
2. Использовать для хранения временных файлов собственный каталог, доступ к которому имеете только вы.
Рекомендации по настройке
1. Если скрипт выполняется с правами пользователя.
Достаточно создать каталог, установить на него разрешение 0700, и через php.ini или .htaccess установить session.save_path на этот каталог
2. Если скрипт выполняется с правами веб-сервера или nobody, safe_mode включен.
Нужно создать каталог и установить на него разрешение, дающее веб-серверу возможность читать, выполнять и записывать этот каталог. Скорее всего это будет что-то типа 0770, как у нас. Обратите внимание, что владельцем
каталога с сессиями должен быть именно пользователь, а не веб-сервер, иначе safe_mode не сможет корректно разделять доступ. Далее, как в первом случае, через php.ini или .htaccess указать session.save_path на этот кталог.
3. Если скрипт выполняется с правами веб-сервера, а safe_mode не включен.
Узнать у провайдера, может быть он использует какой-нибудь другой механизм разграничения доступа. Если нет, то проблема осложняется. Ее тоже можно решить переписывая хэндлер сохранения сессий, но это уже другая история.
См. также:
http://www.webkreator.com/php/configuration/php-session-security.html
Пример атаки:
http://www.securereality.com.au/studyinscarlet.txt 7. Session Files
Уязвимость локального характера, характерна только для shared-хостинга. Т.е. снаружи злоумышелнник ее использовать не может, может только сосед по хостингу, или злоумышленник, сломавший соседа и взявшийся за вас.
Уязвимость относится к древнему виду tmp file attack, когда для хранения временных файлов используется общий каталог, работать с которым разрешено всем. Атака основана на чтении, изменении или создании временных файлов, используемых различными программами и скриптами.
Решения для сессий PHP такое же как и для всего класса tmp file attack:
1. Ограничивать доступ к временному файлу, проверять, что временный файл принадлежит именно нам, не был изменен и т.д.
2. Использовать для хранения временных файлов собственный каталог, доступ к которому имеете только вы.
Рекомендации по настройке
1. Если скрипт выполняется с правами пользователя.
Достаточно создать каталог, установить на него разрешение 0700, и через php.ini или .htaccess установить session.save_path на этот каталог
2. Если скрипт выполняется с правами веб-сервера или nobody, safe_mode включен.
Нужно создать каталог и установить на него разрешение, дающее веб-серверу возможность читать, выполнять и записывать этот каталог. Скорее всего это будет что-то типа 0770, как у нас. Обратите внимание, что владельцем
каталога с сессиями должен быть именно пользователь, а не веб-сервер, иначе safe_mode не сможет корректно разделять доступ. Далее, как в первом случае, через php.ini или .htaccess указать session.save_path на этот кталог.
3. Если скрипт выполняется с правами веб-сервера, а safe_mode не включен.
Узнать у провайдера, может быть он использует какой-нибудь другой механизм разграничения доступа. Если нет, то проблема осложняется. Ее тоже можно решить переписывая хэндлер сохранения сессий, но это уже другая история.
См. также:
http://www.webkreator.com/php/configuration/php-session-security.html
Пример атаки:
http://www.securereality.com.au/studyinscarlet.txt 7. Session Files