Войти или зарегистрироваться
Выберите удобный способ — аккаунт создастся автоматически.
Или войдите по логину и паролю

16.09.2007, 19:49
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
С нами:
9999746
Репутация:
1318
|
|
Хм... ХЗ... Вроде и правда работает как is_set... Хотя судя по http://ru.php.net/manual/ru/function.empty.php оно автоматом заменяет выражение на NULL, а уже empty от NULL работает корректно... В общем ладно, тут я тогда настаивать не буду, оформим это как замечание по технике программирования... 
|
|
|

16.09.2007, 19:50
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
С нами:
10467746
Репутация:
4738
|
|
empty возвращает false, если переменная существует и имеет не пустое или не нулевое значение; true в обратном случае.
Т.е. если переменной нет или она есть и её значение пустое или нулевое. ->true
Отсюда вывод: однозначно существование переменной она не проверяет!
PS groundhog прав - проверяет на НЕПУСОТУ!
Т.е. если переменная не существует или её значение пустое или 0, то результат одинаков.
Последний раз редактировалось -=lebed=-; 16.09.2007 в 19:57..
|
|
|

17.09.2007, 16:57
|
|
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
С нами:
10892546
Репутация:
2274
|
|
По поводу баги №6
Код:
Защита: Использование слеширования опасных символов функцией addslashes().
А если в строку прописать stripslashes($_GET[php])&php=(тот_что_ты_показывал) 
|
|
|

18.09.2007, 20:30
|
|
Постоянный
Регистрация: 08.04.2007
Сообщений: 853
С нами:
10048706
Репутация:
1540
|
|
Самое простое это функция basename(). Она извлекает из пути файла его имя. Плюс, не побоюсь этого слова, обрезание расширения, либо удаление точки.
можно ещё и так:
PHP код:
<?
if(is_file("modules/".$_GET['module'])) include("modules/".$_GET['module'];
?>
|
|
|

18.09.2007, 21:07
|
|
Постоянный
Регистрация: 20.01.2007
Сообщений: 787
С нами:
10160966
Репутация:
1719
|
|
Ага, а если я в кач-ве $module передам
../../../../../etc/passwd ?
или ты хочешь сказать, что при проверке is_file файла passwd функция возвратит false?
|
|
|

18.09.2007, 21:19
|
|
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
С нами:
10892546
Репутация:
2274
|
|
n1†R0x, ИМХО апач тебя пошлёт, он кажись не обрабатывает такие пути ну в смысле ты указываешь папку а потом из неё возвращаешся, нипаймёт он тебя modules/../../../../../etc/passwd
|
|
|

18.09.2007, 22:01
|
Регистрация: 18.02.2006
Сообщений: 1,090
С нами:
10644806
Репутация:
1564
|
|
I-I()/Ib и groundhog
Красавцы, оба шарите, молодцы. Как говорится в споре рождается истина... обоим по +5 поставил
|
|
|

18.09.2007, 22:03
|
|
Постоянный
Регистрация: 20.01.2007
Сообщений: 787
С нами:
10160966
Репутация:
1719
|
|
Сообщение от Ponchik
n1†R0x, ИМХО апач тебя пошлёт, он кажись не обрабатывает такие пути ну в смысле ты указываешь папку а потом из неё возвращаешся, нипаймёт он тебя modules/../../../../../etc/passwd
Вообще, как мне кажется, данную функцию будет обрабатывать PHP, а не апач. И мне не кажется в любом случае, что меня пошлют) разве что прав не хватит, но это уже другой разговор...
Если бы апач (точнее, пхп) посылал, не было бы php-инклудов. А относительные пути с движением вверх поддерживаются еще со времен ms-dos 
|
|
|

19.09.2007, 10:12
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
С нами:
9999746
Репутация:
1318
|
|
n1†R0x, ты прав, при такой реализации:
<?
if(is_file("modules/".$_GET['module'])) include("modules/".$_GET['module'];
?>
Можно проинклудить незапланированное файло, ну, конечно, если не накладывается никаких дополнительных ограничений.
|
|
|

19.09.2007, 11:56
|
|
Постоянный
Регистрация: 30.08.2005
Сообщений: 730
С нами:
10892546
Репутация:
2274
|
|
Да? Х_Х Ну а как от этого защититься-то?!
if(is_file("./modules/".$_GET['module'])) include("./modules/".$_GET['module'];
Так чтоли?
|
|
|
|
Предыдущая тема
Следующая тема
Похожие темы
|
| Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
|
#antichat. Логи, лолы.
|
Gh0s7 |
Болталка |
694 |
07.06.2010 20:01 |
|
Books PHP
|
FRAGNATIC |
PHP |
186 |
21.02.2010 02:41 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|