Простая схема хранения данных для ограничения доступа общественности

Я работаю над библиотекой, которая позволяет сайту добавлять раздел комментариев на свой сайт.

Идея заключалась в том, чтобы сделать его максимально легким, поэтому я предпочел использовать JSON для базового хранения данных, например, сообщения комментариев, веб-сайта и имени пользователя. Все эти данные являются общедоступными и могут быть доступны непосредственно через JSON. Я не возражаю против этого, так как комментарии все равно будут отображаться на дисплее.

Однако проблема возникает, когда я хочу, чтобы пользователь получал уведомление, когда кто-то отвечает на их комментарий. Электронная почта находится в поле ввода, но я не хочу, чтобы она хранилась в общедоступном файле JSON. Есть ли какая-либо другая схема хранения данных на стороне сервера, где я могу хранить электронную почту в частном порядке и в то же время использовать эти письма со сценариев на стороне сервера для отправки электронной почты?

MySQL и другие сделают библиотеку неуклюжей, так что из списка.

Или даже рядом с этими условиями есть ли другой способ? "

Ответ 1

Вам нужно API, а не источник данных. Источник данных - это истина, в которой живут все данные. Как и в вашем примере, если у вас есть электронная почта в ваших данных, она всегда будет там. Если вы не будете оставлять поле электронной почты отдельно.

  • Способ создания api, который выведет необходимые данные из файлов JSON (или базы данных). Вы можете скрыть данные, которые вы не хотите показывать. Таким образом, вы просто выставляете api вместо имени файла напрямую, что может быть очень легко изменено или изменено или взломано.

  • Другим способом без использования API является наличие нескольких файлов JSON. Один файл будет иметь базовые данные, а другие будут иметь конфиденциальные данные вместе с внешним ключом, таким как уникальный ключ, который отображает конфиденциальные или другие данные с основной записью.

Пример: Comments.json:

{
  "comments": [{userId: 1, ...},{...}]
}

CommentDetails.json

{...}

Пользователи

[
  1: {"username": "", "email": "[email protected]",...}
]

Ответ 2

Вы можете использовать базу данных, такую ​​как MongoDB, которая хранит документы JSON, чтобы хранить данные пользователей и комментарии.

Затем коллекция пользователей не будет полностью отправлена ​​пользователю, фильтрует электронные письма и другие конфиденциальные данные.

Ответ 3

Создайте второй файл JSON или CSV файл, который остается конфиденциальным, который отображает пользователей в свои идентификаторы электронной почты.

Интересный проект, который вы пытаетесь, кстати. Удачи!!:)

Ответ 4

Почему бы просто не использовать .htaccess в каталоге, где хранятся данные, и использовать что-то вроде "Отказать от всех"?

Теперь ваши скрипты могут получить доступ, но не пользовательский браузер.

Ответ 5

Предполагая, что будет задействован почтовый сервер, можете ли вы разместить веб-службу с двумя конечными точками?

Конечные точки:

  • отправляет электронные письма; берет отправителя guid вместо адреса электронной почты
  • хранит электронное письмо; берет адрес электронной почты и возвращает указатель отправителя.

Эта веб-служба может затем использоваться вашей библиотекой с любого доступного на WWW сервере. На хосте веб-службы электронные письма могут храниться в выбранном вами формате. Вы также захотите защитить веб-службу, чтобы другие пользователи не запускали уведомления по электронной почте.