| Документ из базы библиотеки компьютерной литературы 'Roga и Копыта' - www.roga.by.ru |
| Содержание документа. | Скачать архив документа. | Другие документы по данной теме. | Вернуться в библиотеку. | Рассылка новых поступлений. | ЧАТЫ по интересам. |
О проблеме безопасности в PHP/FI |
Как известно, в дистрибутиве этой программы поставляются примеры использования разнообразных возможностей языка PHP/FI. Но было обнаружено, что в нескольких из приведенных примеров существует огромная дыра в безопасности. Баг заключается в том, что при обращении любого пользователя к некоторым из этих страниц, пользователь может удаленно читать любой файл на физическом разделе сервера, причем с теми правами, на которых запущен http-сервер. Этот баг, присутствует, например в файлах mlog.html и mylog.html. В них присутствует следующая команда: Смысл этой строчки - прочесть файл, имя которого находится в этой переменной $screen. Но при этом не принимается во внимание, что пользователь может сам вызвать эту страницу, установив значение переменной screen в полный путь к любому из файлов в системе. Как правило, взломщики интересуются файлами /etc/passwd, /etc/master.passwd, /etc/shadow и тд - файлами, содержащими пароли пользователей. Если вы еще не поняли, как может быть проведена такая атака, то вот вам пример строки, которую достаточно вписать в поле адреса вашего браузера, чтобы проверить атакуемый хост на защищенность и в случае успеха получить "волшебный ключик" ко всем дверям сайта: http://some.stupid.isp.net/~dumbuser/cool-logs/mlog.html?screen=[здесь подставляете полный путь к интересующему файлу] Защита. Простейший вариант защиты - проверять переданное имя файла на наличие в нем слэшей(косых черт) - то есть символов, которые используются только при указании полного пути к файлу. Скажем, подойдет вот такой вот кусок кода для проверки: echo "Permission denied: path may not contain slashes."; Exit; }> На многих сайтах сейчас эта дыра может быть закрыта, чего и вам желаю. Но при использовании старых версий PHP/FI эта атака вполне реальна. |