Forum Webscript.Ru

Программирование => PHP => Тема начата: Tronyx от 24 Июля 2002, 13:55:43

Название: Виртуальные файлы и папки.
Отправлено: Tronyx от 24 Июля 2002, 13:55:43
Я пишу движок в котором весь контент сайта хранится в БД, там 2 таблицы: dirs и files в files есть поле с id той папки в которой "лежит" файл, так же и с dirs. В дирс ещё есть поля с заголовком (title формируется так: Сайт :: заголовок_директории :: заголовок_другой_директории :: ... :: заголовок файла), шаблоном для этой и вложеных папок и т.д.

При запросе всех файлов с расширением html адрес переписывается в "/pages.php?запрошеный_файл" с помощью mod_rewrite. Скрипт проверяет наличие инфы о папке в таблица dirs, запоминает её заголовок, шаблон и т.д. затем тоже самое происходит и с файлом, потом используемый шаблон, заголовок сохраняются в кеш (таблица cash_paths), и при запросе того же УРЛа инфа достаются уже из кеша.

ИМХО конструкция имеет слабость, а именно: "злоумышленик" может написать "/info/about/company/абра_кадабра", в этом случае скрипт проверит наличие каждой папки в БД (а первые три там есть), а на абра_кадабре не чего не найдёт и выдаст сообщение об ошибке но скрипт схавает долю ресурсов на запросах к БД, так опасность по моему мнению заключается в том что злоумышленик может "поставить это дело на конвеер", от одного хакера сервак не упадёт, а нагрузка то прибавится.

Может быть как-то ускорить этот процес или после 3 запрошеных подряд не верных адресов блокировать его по Ip скажем на час-два?
Название: Виртуальные файлы и папки.
Отправлено: Tronyx от 24 Июля 2002, 20:33:21
Чё не кто не знает ??? :(
Название: Виртуальные файлы и папки.
Отправлено: GotZfild от 24 Июля 2002, 20:49:00
Ну а что тут знать? Если злоумышленники устроят DOS-атаку, то ничто не спасет.
Цитировать
блокировать его по Ip скажем на час-два

Если хакер не меняет периодически свой IP при атаке, то это уже не хакер.
Можно попытаться нагородить огород, только это приведет к еще большей нагрузке на сервер.
Название: Виртуальные файлы и папки.
Отправлено: Tronyx от 24 Июля 2002, 21:39:34
GotZfild хочешь сказать не надо блокировать по ip вообще?
Название: Виртуальные файлы и папки.
Отправлено: GotZfild от 24 Июля 2002, 21:42:44
Tronyx
Я хочу сказать, что блокировка бесполезна.
Название: Виртуальные файлы и папки.
Отправлено: Tronyx от 24 Июля 2002, 21:51:56
GotZfild а что тогда делать для хоть какой-то защиты?
Название: Виртуальные файлы и папки.
Отправлено: GotZfild от 24 Июля 2002, 21:58:58
Если есть возможность, оптимизируй скрипт (особенно в отношении БД), иначе расслабься.
Название: Виртуальные файлы и папки.
Отправлено: nagash от 26 Июля 2002, 10:58:39
ага...
я так понимаю что делать надо ОДИН запрос но с поиском по ВСЕМ директориям...
допустим
SELECT * FROM dir WHERE dir = dir1 AND dir = dir2 AND dir = dir3
бла бла бла...
в итоге у тебя только один запрос...
Название: Виртуальные файлы и папки.
Отправлено: AlieN от 26 Июля 2002, 11:02:14
Tronyx
Можно сделать иначе:
mysql грубо раз в 15-20 минут делает select distinkt и генерит php-исклюд ввиде допутим массива

и когда чел вводит папку просто делаешь array_search
если есть то пусть работает дальше нету - exit();
Название: Виртуальные файлы и папки.
Отправлено: Tronyx от 26 Июля 2002, 11:34:20
Цитировать
select distinkt

А это что?