|
|
|
| есть такая идея, мой сайт требует постоянной обработки выводиммых данных, для этого я используя так называемые фильтры, фильтры для генерации bbcoda, для проверки post - get, для проверки и отправки почты..
я хотел бы создать папку plugin и автоматически учитывать находящиеся там php скрипты...
как это можно реализовать?
известно что имена файлов будут неизвестны, как прочитать файлы в данный директории и выполнить их как программу php? | |
|
|
|
|
|
|
|
для: freeing
(01.02.2010 в 18:59)
| | glob(), require() | |
|
|
|
|
|
|
|
для: Тень
(01.02.2010 в 19:32)
| | сделал так:
<?php
// Plug-in
$root = $_SERVER["DOCUMENT_ROOT"];
$dir = $root."/plug-in/";
if(is_dir($dir))
{
$dh = opendir($dir);
if($dh)
{
while (($file = readdir($dh)) !== false)
{
if($file !== "." && $file !== "..")
{
if(is_file($dir.$file))
{
require_once($dir.$file);
}
}
}
closedir($dh);
}
}
?>
|
| |
|
|
|
|
|
|
|
для: freeing
(02.02.2010 в 02:02)
| | и красными буквами на хомпейдж:
Не тратьте время и нервы! Суйте трояны в папку plug-in ! | |
|
|
|
|
|
|
|
для: Trianon
(02.02.2010 в 02:47)
| | я просто объявлю константу и устрою проверку ее из загружаемых скриптов... | |
|
|
|
|
|
|
|
для: freeing
(02.02.2010 в 10:17)
| | А атакующий загрузит скрипт, представьте себе, тоже с проверкой константы. Если он совсем тупой.
А если обычный такой атакующий - то загрузит скрипт без всякой проверки константы.
И Ваш обработчик его исполнит, как миленький. Во втором случае - с чуть большей вероятностью.
Вы знаете, очень хочелось ответить в стиле "Бу-га-га!".
Ну откуда такое категорическое нежелание думать?! | |
|
|
|
|
|
|
|
для: Trianon
(02.02.2010 в 12:19)
| | Кто разрешит загружать какие-то файлы в эту папку? С таким же успехом можно ругать скрипты а-ля Smarty, xBB, где подгружаются теги/модификаторы/плагины из папки с заранее неизвестным списком файлов. В смысле, почему этот подход кажется ущербным? | |
|
|
|
|
|
|
|
для: Тень
(02.02.2010 в 14:21)
| | Вы убеждены, что в перечисленных продуктах списки модулей нигде (кроме как списком файлов каталога) не декларированы?
Кто разрешит?
На хостинге обычно у apache права самые минимальные. И если ему разрешено создавать файлы в некотором каталоге, значит файлы в этом каталоге по правам UNIX может создать вообще любой пользователь сервера.
Вот он и создаст.
> Так и будем молчать? :)
Кто молчит-то, Алё?
У меня сегодня из клавиатуры только разве дым не идет. | |
|
|
|
|
|
|
|
для: Trianon
(02.02.2010 в 16:15)
| | > Вы убеждены, что в перечисленных продуктах списки модулей нигде (кроме как списком файлов каталога) не декларированы?
Да.
> На хостинге обычно у apache права самые минимальные. И если ему разрешено создавать файлы в некотором каталоге
Никто не заявлял, что Apache кто-то разрешит что-то создавать в этом каталоге, файлы (модули, плагины) заливаются по (S)FTP/SSH. | |
|
|
|
|
|
|
|
для: Тень
(02.02.2010 в 18:04)
| | >Никто не заявлял, что Apache кто-то разрешит что-то создавать в этом каталоге, файлы (модули, плагины) заливаются по (S)FTP/SSH.
Вы это за топикстартера расписываетесь? :) | |
|
|
|
|
автор: Тень& (03.02.2010 в 21:00) |
|
|
для: Trianon
(02.02.2010 в 18:40)
| | Ответ Loki (его пост был удалён): кстати, у Smarty же скомпилированный код сохраняется в определённой директории (templates_c по умолчанию) с правами записи в них. По-моему, это гораздо опаснее приведённого ТС-ом кода. | |
|
|
|
|
|
|
|
для: Trianon
(02.02.2010 в 12:19)
| | вопрос в том, что данные файлы будут зашифрованы....
и будет ряд проверок | |
|
|
|
|
|
|
|
для: freeing
(02.02.2010 в 17:19)
| | Бу. Га. Га.
В (02.02.2010 в 12:19) замените "проверка константой" на "данные зашифрованы".
Если же ряд проверок подразумевался в этом скрипте - который файлы перебирает, то такие проверки нужно показывать явно и сразу. Собственно, их всякое отсутствие и является поводом для моего (02.02.2010 в 02:47) | |
|
|
|
|
|
|
|
для: Trianon
(02.02.2010 в 17:24)
| | в целом я вас понял, я понимаю сомнение и разделяю его, если есть возможность избежать проблем, грех не воспользоваться....
просто заказчик приходит и говорит, мне вот так, или сяк...
я мол буду заказывать поиск по сайту но позже....
вот и ищу возможность удаленного обновления... | |
|
|
|
|
|
|
|
для: freeing
(02.02.2010 в 17:38)
| | Так и я к тому, что не побрезгуйте обеспечить возможность минимизировать проблемы.
Заведите таблицу с описаниями модулей. Разместите в ней хеши файлов модулей.
Проверьте их при подключении, сканируя эту таблицу. Подстелите соломку, короче говоря. | |
|
|
|
|
|
|
|
для: Trianon
(02.02.2010 в 18:43)
| | Скажите, я вот делаю так:
У меня на сайте есть много модулей (ясное дело, тоже неизвестно какие). К примеру пользователь заходит по адресу http://site.ru/index.php?modules=news . В скрипте (индексном) у меня стоит проверка, если `modules` не пуста, то зайти в таблицу `modules` и поискать там запись с названием `news`, если такая есть - подгрузить индексный файл из папки указанной в этой записи.
Так правильно и безопасно? (только никаких проверок констант в этих файлах нету, ну только $_GET['modules'] проверяется, ясное дело :) ) | |
|
|
|
|
|
|
|
для: DEM
(03.02.2010 в 03:25)
| | >Скажите, я вот делаю так:
>У меня на сайте есть много модулей (ясное дело, тоже неизвестно какие). К примеру пользователь заходит по адресу http://site.ru/index.php?modules=news . В скрипте (индексном) у меня стоит проверка, если `modules` не пуста, то зайти в таблицу `modules` и поискать там запись с названием `news`, если такая есть - подгрузить индексный файл из папки указанной в этой записи.
Но ведь с таблицей-то Вы сверяетесь?
Несколько иной коленкор, выходит, не так ли?
>Так правильно и безопасно?
Это уж Вам решать. | |
|
|
|