Kucher2 122 Опубликовано: 2010-10-27 08:01:51 Share Опубликовано: 2010-10-27 08:01:51 Привет всем. Задумался над написанием приблуды в виде статистики для юзера. Была мысль, по совету уважаемого madf, собирать статистику для юзеров посредством скрипта СТГ - OnChange. Статистика после некой текстовой обработки должна приводится в удобочитаемый вид и накопительно ложиться в текстовый файлик в соответствующей папке юзера. А потом по его запросу с личной странички - ему показываться. ...и додумался я до того, что начинаю опасаться за безопасность данных. Например такая конструкция: //Начальные установки - читаем конфиги $krn = "/var/stargazer/users/"; $pathc .= $krn .$login ."/conf"; $paths .= $krn .$login ."/stat"; $confpath = file($pathc); $statpath = file($paths); include('/var/stargazer/wm/wm.conf'); // Остаток средств на счету $pr = $statpath[0]; $cash = explode("=",$pr); Как видите чтение данных происходит напрямую из конфигурационных файлов юзеров, разрешения на которые, скажем, 755. Поскольку я вовсе не программер и вряд ли им стану когда-то, хотелось бы узнать мнение сведущих людей насколько опасен такой способ обработки данных. Только не надо страшилок, прошу придерживаться реалий. Ссылка на сообщение Поделиться на других сайтах
nightfly 1 246 Опубліковано: 2010-10-27 08:26:26 Share Опубліковано: 2010-10-27 08:26:26 пытаетесь не сделать своими руками дырку под названием PHP-Include/File-Injection? Тогда нивкоем случае нельзя давать полльзователю вводить свой логин (можно например определять по айпишке) либо всетаки пользуясь мозгом сильно-сильно фильтровать логин на предмет %00, \, /,".." А еще добрый совет от себя - забудьте файловый сторедж раз и навсегда. Вы банально с нулевым КПД будете продолжать тратить время на рутинный кодинг простейших выборок вместо наращивания бизнеслогики. Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-10-27 09:16:25 Автор Share Опубліковано: 2010-10-27 09:16:25 либо всетаки пользуясь мозгом сильно-сильно фильтровать логин на предмет %00, \, /,".." Модуль ввода логина/пасса писал не я, но судя по коду там такая проверка стоит. Вы банально с нулевым КПД будете продолжать тратить время на рутинный кодинг простейших выборок вместо наращивания бизнеслогики. Шо? Я не собираюсь это продавать, я для себя пишу, просто для удобства. Или речь он надёжности? За комментарии большое спасибо. Я так понял особо бояться нечего. Ссылка на сообщение Поделиться на других сайтах
nightfly 1 246 Опубліковано: 2010-10-27 11:03:58 Share Опубліковано: 2010-10-27 11:03:58 Речь о удобстве и красоте кода пусть даже для себя. Давайте сравним: Я делаю так одной строчкой: SELECT `address`.`login` , `address`.`kvart` , `build`.`build`,`build`.`street` FROM `address` LEFT OUTER JOIN `build` ON `address`.`build` = `build`.`id` Сколько у вас уйдет вашего же времени для того чтобы получить такой результат на файловой базе? Я могу предположить минимум 7-8 синхронных fopen()/fclose() и минимум 5 вложенных циклов + куча парсинга регекспами. Это як в вашему аргументу "просто для удобства". Благо имеется уже оптыт разработки здорового опенсорс проекта "на файлах" тянущийся где-то с 2003-го года и до сих пор. Удобством обработки данных такие решения даже не пахнут. Ссылка на сообщение Поделиться на других сайтах
Kucher2 122 Опубліковано: 2010-10-27 11:22:42 Автор Share Опубліковано: 2010-10-27 11:22:42 Не могу с этим не согласиться. Как только я увижу что мои свершения не годятся - конечно буду думать о другом варианте. Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас