Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Безопастность. scandir($_GET[dir])
 
 автор: Бамси   (27.08.2007 в 16:34)   письмо автору
 
 

Не знал как назвать тему, но думаю мысль ясна.
У меня в скрипте, параметр для функции scandir() передается в GET, /img/album1, /img/album2. => scandir(“/img/album1”);
И скрипт уже отображает все что есть в папке.
Но как мне обезопасить себя, что бы злые пользователи не смогли написать допустим ../../../../etc/ и получить его содержимое.
Скрипт будет ползать только в пределах папки /img/ и не куда ниже, платформа Win32.

   
 
 автор: bronenos   (27.08.2007 в 16:42)   письмо автору
 
   для: Бамси   (27.08.2007 в 16:34)
 

if (strpos(dir, '/') !== false) die();
chdir('img/');

   
 
 автор: Loki   (27.08.2007 в 16:43)   письмо автору
 
   для: Бамси   (27.08.2007 в 16:34)
 

<?
scandir
("/img/".$_GET['dir']);

а dir проверять чтобы не содержал ничего кроме цифр и букв... а еще лучше вообще вот так:
<?
$dir
=intval($_GET['dir']);
scandir("/img/album".$dir);

ну это в том случае если у вас все каталоги подобным образом нумеруются.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования