用于限制公共访问的简单数据存储架构

时间:2017-10-17 05:17:56

标签: javascript json database server-side data-storage

我一直在开发一个图书馆,使网站能够在他们的网站上添加评论部分。

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

然而,当我想要在有人回复他们的评论时通知用户时会出现问题。电子邮件存在于输入字段中,但我不希望它存储在公共JSON文件中。 是否有其他服务器端数据存储架构,我可以私下存储电子邮件,同时使用服务器端脚本中的电子邮件发送电子邮件?

MySQL和其他人会让图书馆变得笨重,所以这不在列表中。

或者即使在这些条件下,还有其他可能的方法吗?

5 个答案:

答案 0 :(得分:4)

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

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

  2. 不使用API​​的其他方法是拥有多个JSON文件。 一个文件将具有基本数据,而另一个文件将具有机密数据,以及将唯一密钥映射到主记录的机密或其他数据的外键。

  3. 实施例: Comments.json:

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

    CommentDetails.json

    {...}
    

    用户:

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

创建第二个JSON文件或CSV文件,保存为私有,将用户映射到他们的emailID。

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

答案 3 :(得分:1)

为什么不在存储数据的目录中使用.htaccess并使用"拒绝来自All"?

您的脚本可以访问,但没有用户的浏览器。

答案 4 :(得分:1)

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

终点:

  1. 发送电子邮件;使用发件人guid而不是电子邮件地址
  2. 存储电子邮件;获取电子邮件地址并返回发件人guid
  3. 您的图书馆可以从任何可访问www的服务器使用此Web服务。在Web服务主机上,电子邮件可以以您选择的格式存储。您还需要保护Web服务,以防止其他人触发邮件通知。