[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка на существование и возможность открытия(права доступа) папки.
webmaster
Вообщем написал на php динамическое меню.Ты ему адрес нужной папки в каталоге, а он тебе рисуночек меню.Все адреса должны выглядеть так: "files/soft/netopad/".Запросы передаются GETом.Как защититься скажем от ../../passwords.txt(конечно у меня такого файла нет но в последствии могут появиться файлы с чем то важным.Или скажем человек мои скрипты защиты читать станет, тоже не супер).Я думаю надо проверить существование папки и выходит ли она за пределы папки files, но как...Также надо проверить чтобы это была именно папка но это я знаю как сделать - is_dir().



Спустя 1 час, 44 минуты, 10 секунд (22.01.2007 - 21:30) Ghost написал(а):
храни такие файлы вне папки public_html или ее аналога, они не доступны из адресной строки бразера

Спустя 8 минут, 38 секунд (22.01.2007 - 21:39) webmaster написал(а):
разумно но php скрипты все равно можно посмотреть!

Спустя 5 минут, 51 секунда (22.01.2007 - 21:45) PantiL написал(а):
файлы выше public_html не доступны из адресной строки, но если адрес передать скрипту, то он сможет приинклудить или прочесть такой файл(если конечно будет обладать такими правами, что не исключено), таким образом злоумышленник сможет получить к нему доступ, максимум прочесть, но это тоже неприятно.

Спустя 25 минут, 43 секунды (22.01.2007 - 22:10) Ghost написал(а):
дык надо думать когда пишешь..

QUOTE
php скрипты все равно можно посмотреть

из бразера??

Спустя 14 минут, 4 секунды (22.01.2007 - 22:24) webmaster написал(а):
так нет же, послав его путь моему скрипту меню!

Спустя 55 секунд (22.01.2007 - 22:25) webmaster написал(а):
QUOTE
дык надо думать когда пишешь..

это ты о чем?

Спустя 15 минут, 12 секунд (22.01.2007 - 22:41) PantiL написал(а):
Проверь строку запроса с помощью рег выражений на наличие двойной точки в строке запроса<br>
 
<?php
$query_string = "../files/bla/bla";
if(preg_match("/../si", $query_string))
{
     echo "Хакер поешл на х....";
}
else
{
    if(file_exists($query_string))
    {
          echo "Все ОК";
    }
    else
    {
          echo "Вы запросили  не то что нужно";
     }
}
?>
 

Что-то типа того
не претендует на супер решение, но для размышления пойдет

Спустя 4 минуты, 17 секунд (22.01.2007 - 22:45) Ghost написал(а):
QUOTE
это ты о чем?

это например, о случае, кода имя файла передается адресной строкой..
скрипты конечно смотреть нада :) причем всегда :)

Спустя 16 часов, 6 минут, 59 секунд (23.01.2007 - 14:52) webmaster написал(а):
Спасибо!<br><br>А если написать так то будет работать?У меня там вообще точек не должно быть наверное<br><br>
 
if(preg_match("/./si", $query_string))
 


А что заначит
QUOTE
/si

?

Спустя 8 минут, 22 секунды (23.01.2007 - 15:00) md5 написал(а):


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.