Kucher2 122 Posted 2010-10-27 08:01:51 Share Posted 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. Поскольку я вовсе не программер и вряд ли им стану когда-то, хотелось бы узнать мнение сведущих людей насколько опасен такой способ обработки данных. Только не надо страшилок, прошу придерживаться реалий. Link to post Share on other sites
nightfly 1,260 Posted 2010-10-27 08:26:26 Share Posted 2010-10-27 08:26:26 пытаетесь не сделать своими руками дырку под названием PHP-Include/File-Injection? Тогда нивкоем случае нельзя давать полльзователю вводить свой логин (можно например определять по айпишке) либо всетаки пользуясь мозгом сильно-сильно фильтровать логин на предмет %00, \, /,".." А еще добрый совет от себя - забудьте файловый сторедж раз и навсегда. Вы банально с нулевым КПД будете продолжать тратить время на рутинный кодинг простейших выборок вместо наращивания бизнеслогики. Link to post Share on other sites
Kucher2 122 Posted 2010-10-27 09:16:25 Author Share Posted 2010-10-27 09:16:25 либо всетаки пользуясь мозгом сильно-сильно фильтровать логин на предмет %00, \, /,".." Модуль ввода логина/пасса писал не я, но судя по коду там такая проверка стоит. Вы банально с нулевым КПД будете продолжать тратить время на рутинный кодинг простейших выборок вместо наращивания бизнеслогики. Шо? Я не собираюсь это продавать, я для себя пишу, просто для удобства. Или речь он надёжности? За комментарии большое спасибо. Я так понял особо бояться нечего. Link to post Share on other sites
nightfly 1,260 Posted 2010-10-27 11:03:58 Share Posted 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-го года и до сих пор. Удобством обработки данных такие решения даже не пахнут. Link to post Share on other sites
Kucher2 122 Posted 2010-10-27 11:22:42 Author Share Posted 2010-10-27 11:22:42 Не могу с этим не согласиться. Как только я увижу что мои свершения не годятся - конечно буду думать о другом варианте. Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now