限制 public 访问的简单数据存储模式

A simple data storage schema to restrict public access

我一直在开发一个库,它可以让网站在他们的网站上添加评论部分。

我的想法是尽可能保持它的轻量级,因此我更喜欢使用 JSON 来存储基本数据,例如评论消息、网站和用户名。所有这些数据都是 public,可以通过 JSON 直接访问。我不介意这一点,因为无论如何评论都会 public 显示。

但是,当我希望用户在有人回复他们的评论时得到通知时,问题就出现了。电子邮件在输入字段中,但我不想将其存储在 public JSON 文件中。 是否有任何其他服务器端数据存储模式,我可以在其中私密地存储电子邮件,同时使用来自服务器端脚本的这些电子邮件来发送电子邮件?

MySQL 和其他人会使库变得笨重,因此不在列表中。

或者除了这些条件还有其他可能的方法吗?

您可以使用像 MongoDB 这样存储 JSON 文档的数据库来保存用户和评论的数据。

然后,用户集合将不会完全发送给用户,过滤电子邮件和其他敏感数据。

为此创建第二个 JSON 文件或 CSV 文件,该文件保密,将用户映射到他们的电子邮件 ID。

顺便说一句,您正在尝试的项目很有趣。祝你好运!! :)

您需要的是 APIs 而不是数据源。数据源是所有数据所在的真理。就像在您的示例中一样,如果您的数据中有电子邮件,它将始终存在。除非你单独保留电子邮件字段。

  1. 方法是创建api,它将从JSON 文件(或数据库)输出所需的数据。您可以选择隐藏不想显示的数据。 这样,您只公开 api,而不是直接公开文件名,这很容易被修改、更改或黑客攻击。

  2. 不使用 API 的其他方法是拥有多个 JSON 文件。 一个文件将包含基本数据,其他文件将包含机密数据,以及将机密或其他数据与主记录映射的外键(如唯一键)。

示例: Comments.json:

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

CommentDetails.json

{...}

用户:

[
  1: {"username": "", "email": "asdas@asdas.com",...}
]

为什么不在存储数据的目录中使用 .htaccess 并使用类似 "Deny from All" 的东西?

那时您的脚本可以访问,但用户的浏览器无法访问。

假设将涉及邮件服务器,您可以托管具有两个端点的 Web 服务吗?

端点:

  1. 发送电子邮件;使用发件人 GUID 而不是电子邮件地址
  2. 存储电子邮件;需要一个电子邮件地址和 returns 一个发件人 guid

您的图书馆随后可以从任何可访问 www 的服务器使用该网络服务。在 Web 服务主机上,电子邮件可以以您选择的格式存储。您还需要保护您的 Web 服务以防止其他人触发邮件通知。