一个简单的数据存储模式以限制公共访问

11
我一直在开发一个库,使网站能够向其网站添加评论部分。
我的想法是尽可能保持轻量级,因此我更喜欢使用JSON进行基本数据存储,例如评论消息、网站和用户名。所有这些数据都是公开的,可以直接通过JSON访问。我并不介意这一点,因为评论最终会公开显示。
然而,当我想要通知用户有人回复他们的评论时,问题就出现了。电子邮件在输入字段中,但我不想将其存储在公共的JSON文件中。是否有其他服务器端数据存储模式,可以将电子邮件私下存储,并同时使用那些电子邮件从服务器端脚本发送电子邮件? MySQL和其他数据库将使库变得臃肿,因此它们被排除在列表之外。
或者,在这些条件之外,还有其他可能的方法吗?

1
Firebase 可能适合您的需求。您可以使用实时数据库存储您的 JSON 数据,并使用云函数发送电子邮件。 - Sub 6 Resources
1
我正在创建的实际上是一个可以被任何人在他们的网页上使用的库。在这种情况下,使用Firebase相当复杂。 - ghost
1
LevelDb 看起来很有前途。根据自述文件,原始大小约为 110.6 MB。 - TheChetan
1
{btsdaf} - user8811940
1
{btsdaf} - ghost
显示剩余4条评论
5个回答

4
你需要的是API而不是数据源。数据源是一个真实存在的地方,所有数据都在那里。就像你的例子中,如果你有电子邮件在你的数据中,它将一直存在,除非你单独保留电子邮件字段。
创建API的方法是从JSON文件(或数据库)输出所需的数据。您可以选择隐藏您不想显示的数据。这样,您只公开API,而不是直接公开文件名,这样很容易被修改、篡改或攻击。
另一种不使用API的方法是使用多个JSON文件。一个文件将包含基本数据,另一个将包含机密数据,以及类似唯一键的外键,将机密或其他数据与主记录映射起来。
例如:Comments.json:
{
  "comments": [{userId: 1, ...},{...}]
}

CommentDetails.json

{...}

用户:

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

1
你可以使用像MongoDB这样存储JSON文档的数据库来保存用户和评论的数据。
然后,用户集合不会完整地发送给用户,过滤掉电子邮件和其他敏感数据。

关于数据库的问题,我已经提到过了 - "MySQL和其他数据库会使库变得笨重,所以排除在外"。此外,如果没有其他更好的选择,我决定使用SQLite,因为它与PHP最搭配。顺便说一句,谢谢你的建议 :) - ghost

1
创建第二个JSON文件或CSV文件(或其他格式),该文件保密,将用户映射到其电子邮件ID。
顺便说一下,您正在尝试的项目很有趣。祝你好运! :)

1
为什么不在存储数据的目录中使用.htaccess,然后使用类似“拒绝所有”的内容?这样,您的脚本可以访问,但用户的浏览器不能访问。

1
假设邮件服务器参与其中,您能否托管带有两个端点的Web服务?
端点:
1. 发送电子邮件;使用发送者guid而不是电子邮件地址 2. 存储电子邮件;使用电子邮件地址并返回发送者guid
这个Web服务可以在任何可访问WWW的服务器上使用。在Web服务主机上,电子邮件可以以您选择的格式存储。您还需要保护Web服务以防止其他人触发邮件通知。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接