Насколько опасно хранить данные JSON в базе данных? - PullRequest
10 голосов
/ 15 марта 2011

Мне нужен механизм для хранения сложных структур данных, созданных в JavaScript на стороне клиента.Я рассматривал возможность использования метода stringify для преобразования объекта javascript в строку, сохранения его в базе данных, а затем извлечения его обратно и использования метода обратного разбора для возврата объекта javascript.1003 *

Это просто плохая идея или это можно сделать безопасно?Если это возможно, каких ошибок я должен избежать?Или мне просто придумать свой собственный метод для этого?

Ответы [ 3 ]

9 голосов
/ 15 марта 2011

Это можно сделать, и я сделал это. Это так же безопасно, как ваша база данных.

Единственный недостаток - практически невозможно использовать сохраненные данные в запросах. В дальнейшем вы можете захотеть сохранить данные в виде полей таблицы, чтобы включить фильтрацию и сортировку и т. Д.

Поскольку данные создаются пользователем, убедитесь, что вы используете безопасный метод для вставки данных, чтобы защитить себя от атак внедрения (не просто слепо объединять данные в строку запроса).

8 голосов
/ 15 марта 2011

Это нормально, если вы не десериализовали, используя eval.

1 голос
/ 15 марта 2011

Поскольку вы используете базу данных, это означает, что вам нужен серверный язык для взаимодействия с базой данных. Любые данные, которые у вас есть, легко конвертируются из и в json с большинством серверных языков.

Я не могу представить себе подходящий вариант использования, если у вас нет * javascript, он должен быть очень производительным, и вы исчерпали все другие возможности, такие как кэширование, оптимизация запросов и т. Д.

Другим недостатком этого является то, что вы не можете легко запрашивать данные в вашей базе данных, что всегда удобно, когда вы хотите получить какой-либо отчет. А что если ваша структура JSON изменится? Будете ли вы обновлять все скрипты в вашей базе данных? Или вы заставите себя справиться с изменениями в коде парсинга?

1008 * Заключение *

Имхо, это не опасно, но оставляет мало места для управляемости и будущих обновлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...