![]() |
| Home | Это обо мне | Аватары | Фэнтези | Афоризмы | Спонсорам | Подписаться на RSS | |||
Category
Archives |
« Next Item: MySQL: Синхронизация данных (пример с категориями и записями) Previous Item: Нстройки PHP: Failed to write session data (filed) » PHP: Запрет доступа к подключаемым (include) файлам
Здравствуйте, уважаемые читатели блога Курилка.co.ua. Недавно стал разбираться с кодом движка PHPNuke. Не думаю, что меня надолго хватит, но некоторые интересные решения стоят того, чтобы о них рассказать. Впрочем, решайте сами насколько всё это, может быть вам интересно и полезно. В данной заметке я хотел бы поговорить о попытках несанкционированного доступа к подключаемым, через тот же include(), PHP-файл. В некоторых случаях это не столь уж и опасно, но если можно улучшить безопасность, то почему бы нет? Тем более, что метод очень прост и состоит всего из пары (а если серьёзно, то вообще из одной) строк в начале кода:
Как вы видите, используется условие, в котором идёт проверка значения серверной переменной PHP_SELF. Для избежания попыток подстановки html-кода используется функции его (html-кода) преобразования в мнемоники htmlentities(). Далее, применяем, независимую от регистра, функцию stristr(), т.е. ищем в строке серверной переменной PHP_SELF подстроку с именем нашего PHP-файла (в наше примере это: filename.php). Получается так, что если идёт прямое обращение к PHP-файлу – срабатывает условие и выполняется функция die(), т.е. прекращение дальнейшей обработки кода. Согласен, штука достаточно примитивная и наверное не всегда сможет противостоять хитрым атакам, но лучше что-то чем ничего. Впрочем, если вы знаете, более лучшее и интересное решение – всегда буду рад вашим комментариям. Спасибо за внимание.
2 Responses for "PHP: Запрет доступа к подключаемым (include) файлам"
|
Popular links |
|
| Copyright © since 2006 Курилка.co.ua, powered by WordPress |
|
publish: Среда Фев 4, 2009 at 7:25 пп
Просто сложить все такие файлы в одну папку и для нее сделать файл .htaccess с единственной строчкой — deny from all
publish: Среда Фев 4, 2009 at 7:59 пп
2IR: hi! Да, действительно, можно применить и такой метод. Однако не всегда хостинг провайдер позволяет играть с .htaccess, да и ещё разные ситуации бывают