Просто прочитайте ваш пост, и я должен сказать, что мне очень нравится ваш подход, он предвещает, как многие веб-приложения, вероятно, будут работать в будущем, как с элементом локального хранилища (для отключенного состояния), так и с онлайн-хранилищем (мастер).база данных - для сохранения всех записей клиентов в одном месте и синхронизации с другими клиентскими устройствами).
Вот мои ответы:
1) Хранение JSON на сервере: I 'Я не уверен, что я буду хранить объекты как JSON, это возможно сделать, если ваше приложение довольно простое, однако это затруднит усилия по использованию данных (например, запуск отчетов и отправка их по электронной почте в пакетном задании).Я бы предпочел использовать JSON для самой передачи информации и базу данных SQL для ее хранения.
2) Подход NoSQL: Я думаю, что вы ответили на свой вопрос.Мой предпочтительный подход заключается в настройке базы данных SQL сейчас (если дополнительный ресурс не является проблемой), таким образом вы сэкономите немного усилий, настроив уровень доступа к данным для NoSQL, поскольку вам, вероятно, придется удалить его.в будущем.SQLite - хороший выбор, если вам не нужна полнофункциональная СУБД.
Если написание схемы слишком хлопотно и вы все еще хотите сохранить JSON на сервере, то вы можете хэшировать систему управления объектами JSON с одной таблицей и несколько разборов на стороне сервера, чтобы получить соответствующие записи.,Это будет проще и потребует меньше прав, чем сохранение / удаление файлов.
3) Безопасность: Вы упомянули, что в данный момент нет ввода пользователя:
"для этого варианта использования пользователь не может ничего вводить"
Однако в начале вопроса вы также упомянули, что пользователь может
"работать на одной машине, сохранить, затем перейти на другую машину и загрузить их содержимое "
Если это так, то ваше приложение будет хранить пользовательские данные, не имеет значения, что вы не предоставилихороший графический интерфейс для них, вам придется беспокоиться о безопасности с нескольких точек зрения, а JSON.parse
или подобные инструменты решают только половину проблемы (на стороне клиента).
По сути, вам также придется проверить содержимое вашего запроса POST на сервере, чтобы определить, являются ли отправляемые данные действительными и реалистичными.Целостность объекта JSON (или любых данных, которые вы связываете для сохранения) необходимо будет проверить на сервере (используя php или другой подобный язык) ПЕРЕД сохранением в вашем хранилище данных, это потому, что кто-то может легко обойти ваш уровень javascript«безопасность» и вмешиваться в POST-запрос, даже если вы не намеревались их сделать, и тогда ваше приложение все равно будет отправлять злой ввод клиенту.
Если у вас на стороне сервера все убрано, тогдаJSON.parse
становится немного устаревшим с точки зрения предотвращения инъекций JS.Тем не менее, неплохо иметь дополнительный слой, особенно если вы используете API удаленного веб-сайта для получения некоторых своих данных.
Надеюсь, это полезно для вас.