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

A simple data storage schema to restrict public access

提问人:ghost 提问时间:10/17/2017 更新时间:10/28/2017 访问量:217

问:

我一直在开发一个库,使网站能够在其网站上添加评论部分。

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

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

MySQL和其他软件会使库变得笨拙,所以这不在列表中。

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

JavaScript JSON 数据库 服务器端 数据存储

评论

1赞 Sub 6 Resources 10/22/2017
Firebase 可能适合您。(您可以使用实时数据库来存储您的 JSON,并使用 Cloud Functions 来发送电子邮件)
1赞 ghost 10/22/2017
我正在创建的实际上是一个任何人都可以在其网页上使用的库。在这种情况下,使用 Firebase 非常复杂。
1赞 TheChetan 10/23/2017
LevelDb 看起来很有前途。从自述文件来看,原始大小约为 110.6 MB。
1赞 10/23/2017
如果您不想使用数据库,而只喜欢简单的 json 文件,请创建 2 个 json 文件。一个是公开的,不包括电子邮件。您需要为每条评论添加一个评论 ID。然后,在另一个 json 文件(将是私有的)中,您将拥有与电子邮件相关的 ID 列表。就是这样。
1赞 ghost 10/23/2017
@RomanCortes我确实想为电子邮件创建一个单独的JSON,这是从一开始就计划好的。虽然现在你说要让这个JSON成为“私有的”,但我做了一些阅读,发现这确实是可以实现的。有几种方法,但您能建议任何适合图书馆的理想方法吗?php.ini.htaccess

答:

1赞 jordiburgos 10/22/2017 #1

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

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

评论

0赞 ghost 10/22/2017
我已经提到了我关于数据库的问题 - “MySQL和其他人会使库变得笨拙,所以这不在列表中”。此外,如果真的没有出现任何事情,我决定使用SQLite,因为它最适合PHP。顺便说一句,感谢您的建议:)
1赞 anand 10/23/2017 #2

为此创建第二个 JSON 文件或 CSV 文件,该文件保持私密,用于将用户映射到其 emailID。

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

4赞 scazzy 10/27/2017 #3

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

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

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

例: Comments.json:

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

CommentDetails.json

{...}

用户:

[
  1: {"username": "", "email": "[email protected]",...}
]
1赞 Jens Reidel 10/27/2017 #4

为什么不在存储数据的目录中使用 .htaccess,并使用类似“全部拒绝”之类的内容呢?

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

1赞 N-ate 10/28/2017 #5

假设将涉及一个邮件服务器,您能否托管具有两个端点的 Web 服务?

端点:

  1. 发送电子邮件;采用发件人 GUID 而不是电子邮件地址
  2. 存储电子邮件;采用电子邮件地址并返回发件人 GUID

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