Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,090

Организация информации на сервере

17.12.2015, 15:43. Показов 1369. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет. Я пытаюсь сделать свою CMS. Что-то типа блога.
И вот упёрся в такой вопрос: как, где, и в каком виде размещать пользовательскую информацию.
На данный момент реализована такая структура:
- В MySQL хранится: имя пользователя, почта, пароль, путь к папке пользователя;
- На сервере в папке пользователя хранятся файлы: файл с настройками пользователя в формате csv, файл с сообщениями пользователя в формате csv, медиа файлы пользователя;
- На сервере в корневой папке сайта хранится файл с логином и паролем от базы данных;
Хороша ли такая организация, или как сделать лучше?
Как обеспечить максимальную сохранность и безопасность информации на сервере?
Сейчас, эти параметры находятся на очень низком уровне. Например, зная путь к медиа файлу на сервере, любой желающий может свободно получить доступ к нему просто через адресную строку браузера.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.12.2015, 15:43
Ответы с готовыми решениями:

Организация загрузки и хранения фотографий на сервере
Всем привет. На сайте будет присутствовать возможность добавления фотографий пользователем к своим объявлениям. Возник вопрос организации...

Вывод информации о сервере SAMP
Здравствуйте. Я делаю UCP панель для сервера. Сделал вывод информации игроков,смену паролей и e-mail'ов,но с мониторингом никак не...

Организация информации на сервере
Всем привет. Я пытаюсь сделать свою CMS. Что-то типа блога. И вот упёрся в такой вопрос: как, где, и в каком виде размещать...

5
471 / 399 / 169
Регистрация: 04.01.2013
Сообщений: 1,675
17.12.2015, 16:35
Хранить сведения о пользователе, в том числе и настройки и сообщения и тем более логин с паролем в БД)))
0
В поисках себя
 Аватар для Glart
115 / 89 / 34
Регистрация: 12.11.2015
Сообщений: 529
17.12.2015, 16:47
Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
Сейчас, эти параметры находятся на очень низком уровне. Например, зная путь к медиа файлу на сервере, любой желающий может свободно получить доступ к нему просто через адресную строку браузера.
Либо сделать так что бы названия файлов никто не мог знать, то есть случайные хеши. Либо же писать скрипт обработчик, который проверяет пользователя и то, что файл принадлежит пользователю и только в этом случае выдавать медиафайл.

Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
файл с настройками пользователя в формате csv
Лучше в БД.

Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
файл с сообщениями пользователя в формате csv
Лучше в БД.

Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
медиа файлы пользователя;
Тут уже немного интереснее ситуация. Конечно сами файлы в каталогах хранить. Но вот ссылки на файлы привязывать через БД к пользователю. В названиях и в путях использовать хеши (например хеш файла + дата заливки). А вот названия и пути - это уже выбор организации...

Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
На сервере в корневой папке сайта хранится файл с логином и паролем от базы данных;
Это не совсем ясно. Если это что-то типа:

config.php

PHP
1
2
$login = 'login';
$pass = 'pass';
то вполне нормально.

А если это что-то типа:

config.txt

login
pass
Это плохо.

Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
Как обеспечить максимальную сохранность и безопасность информации на сервере?
Этот вопрос очень глобальный. Такие вопросы решаются путем поиска информации по категориям. Например: сохранность информации на сервере (файлы). Или, еще пример: сохранность личной информации пользователей.

Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
Например, зная путь к медиа файлу на сервере, любой желающий может свободно получить доступ к нему просто через адресную строку браузера.
На самом деле так и будет всегда. Если конечно не запретить на уровне настроек сервера, но тогда и владелец не сможет получить доступ. Для этого как я писал выше:

Либо же писать скрипт обработчик, который проверяет пользователя и то, что файл принадлежит пользователю и только в этом случае выдавать медиафайл.
1
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
17.12.2015, 20:13
ChildOfFlowers, если учетные данные только для одного пользователя, можно и в файле. Действительно, лучше будет php-файл, но его целесообразно разместить в закрытом от прямого доступа каталоге. Когда будете формировать этот файл, в том числе и программно, естественно, его содержимое лучше сформировать в соответствии с синтаксисом PHP, чтобы загружать простым включением (include):
PHP
1
2
3
<?php
$login = 'login';
$pass = 'pass';
Ключ авторизации можно хранить точно также, только лучше в отдельном файле, т.к. обычно он изменяется значительно чаще, чем файл с логином и паролем. Естественно, для этой цели можно использовать и идентификатор сессии.
1
 Аватар для ChildOfFlowers
15 / 14 / 9
Регистрация: 16.04.2012
Сообщений: 1,090
19.12.2015, 11:43  [ТС]
Цитата Сообщение от Glart Посмотреть сообщение
Лучше в БД
Почему? С точки зрения производительности, и с точки зрения безопасности?
Цитата Сообщение от Glart Посмотреть сообщение
писать скрипт обработчик, который проверяет пользователя и то, что файл принадлежит пользователю и только в этом случае выдавать медиафайл
Как это должно работать? Допустим, если посторонний человек знает, что рисунок лежит по адресу http://www.mysite.ru/img/img1.jpg он просто вводит это в адресной строке браузера, и получает рисунок. Как в этот момент может быть запущен какой-то скрипт, если, фактически, пользователь не загружает страницу?
Что-то мне вспомнилось про файл .htaccess. Нельзя ли с его помощью решить эту проблему?
Есть ещё один вариант, правда сомнительный. Я где-то слышал, что можно в MySQL хранить мультимедиа. Что скажите по этому поводу?
Цитата Сообщение от miketomlin Посмотреть сообщение
если учетные данные только для одного пользователя
Как это одного? Пользователей много. Для каждого создаётся своя папка. В ней лежат отдельно .php файлы с настройками и комментариями.
Для безопасности каждый файл начинается со строки
PHP
1
<?php header("Location: 404.html"); die; ?>
Цитата Сообщение от miketomlin Посмотреть сообщение
разместить в закрытом от прямого доступа каталоге
Как сделать такой каталог?
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
19.12.2015, 14:48
Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
Почему? С точки зрения производительности, и с точки зрения безопасности?
Со всех точек зрения. Пока не достигнете предела производительности СУБД.

Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
Как это должно работать? Допустим, если посторонний человек знает, что рисунок лежит по адресу http://www.mysite.ru/img/img1.jpg он просто вводит это в адресной строке браузера, и получает рисунок. Как в этот момент может быть запущен какой-то скрипт, если, фактически, пользователь не загружает страницу?
Под указанным адресом «замаскирован» скрипт, который прежде чем выдать файл проверяет, авторизован ли пользователь. Для больших файлов подобные скрипты обычно пишутся не на PHP.

Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
Что-то мне вспомнилось про файл .htaccess. Нельзя ли с его помощью решить эту проблему?
Это использование файла с паролями и аутентификация по протоколу HTTP. Кстати, подходит в том числе и для больших файлов, т.к. сервер сам проверяет логин/пароль и выдает файл, но используется редко. Программная реализация тоже возможна, но кроме простоты никаких существенных преимуществ больше нет.

Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
Есть ещё один вариант, правда сомнительный. Я где-то слышал, что можно в MySQL хранить мультимедиа. Что скажите по этому поводу?
Нет. В крайнем случае тоже небольшие файлы. Если нужно как-то структурировать хранение файлов, то можно в БД хранить пути или короткие имена файлов, но часто для этого бывает достаточно и структуры самой ФС.

Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
Как это одного? Пользователей много. Для каждого создаётся своя папка. В ней лежат отдельно .php файлы с настройками и комментариями.
Тогда в БД. Настройки и комментарии лежат там же Можно для настроек автора блога использовать файлы, но если в БД уже есть все необходимое для хранения этой информации, то почему бы не хранить все там. Кстати, у автора блога может быть две учетки, так что тут тоже возможны варианты. Например, административную хранить в файлах, а «пользовательскую» в БД.

Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
Для безопасности каждый файл начинается со строки...
Есть такая практика. Но она прежде всего рассчитана на предотвращение выполнения действий, заложенных в файле, и когда компоненты скрипта могут храниться в общедоступных файлах. От нашего файла с логином и паролем запросивший его ничего полезного не получит, если конечно сервер отдаст файл на обработку PHP, а не выведет в чистом виде, но тут тогда и ваш прием ничем не поможет

Цитата Сообщение от ChildOfFlowers Посмотреть сообщение
Как сделать такой каталог?
Надежнее всего просто использовать каталог, лежащий выше корня по другой ветке (например, рядом с корнем). Можно закрыть каталог и в пределах общедоступной области. Для полного закрытия от прямого доступа можно прямо в корне в .htaccess написать
Code
1
RewriteRule ^каталог/ - [NC,F]
Также можно использовать .htaccess самого каталога. Для ограниченного прямого доступа в нем можно прописать ссылку на файл с паролями.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.12.2015, 14:48
Помогаю со студенческими работами здесь

Организация файлов предприятий на сервере
Здравствуйте. Делается база предприятий, под каждое предприятие бедет грузиться на сервер порядка до 5 файлов, пдфы, доки и пр. ...

Организация 1с На Сервере Терминалов Winxp
Ситуация такая: 1) установлена ВинХР с возможностью подключения терминалом нескольких клиентов одновременно 2) стоит 1с 7,7, правда,...

Организация периодического выполнения задач на сервере
Здравствуйте. Есть сервер, и есть задача. Задача сервера следующая: сервер формирует несколько групп новостей (давайте для примера...

Правильная организация клиент-серверной программы с БД на сервере/ах
Приветствую всех, уважаемые форумчане! Имеется программа, состоящая из серверной и клиентской частей. Обе части работают с БД MS SQL...

Организация графической информации
Возникла проблема с лабораторной работой по MS Excel 2010. Задание 3. Построить алгебраическую или трансцендентную линию: Спираль...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru