提问人:ghost 提问时间:10/17/2017 更新时间:10/28/2017 访问量:217
用于限制公共访问的简单数据存储架构
A simple data storage schema to restrict public access
问:
我一直在开发一个库,使网站能够在其网站上添加评论部分。
我的想法是让它尽可能轻量级,因此我更喜欢使用 JSON 来存储基本数据,例如评论的消息、网站和用户名。所有这些数据都是公开的,可以通过JSON直接访问。我不介意这一点,因为无论如何评论都会公开显示。
但是,当我希望用户在有人回复他们的评论时收到通知时,就会出现问题。电子邮件在输入字段中,但我不希望它存储在公共JSON文件中。是否有其他服务器端数据存储架构,我可以私下存储电子邮件,同时使用来自服务器端脚本的这些电子邮件发送电子邮件?
MySQL和其他软件会使库变得笨拙,所以这不在列表中。
或者,除了这些条件之外,还有其他可能的方法吗?
答:
您可以使用像 MongoDB 这样的数据库来存储 JSON 文档,以保存用户和注释的数据。
然后,用户收集的内容不会完全发送给用户,过滤电子邮件和其他敏感数据。
评论
为此创建第二个 JSON 文件或 CSV 文件,该文件保持私密,用于将用户映射到其 emailID。
顺便说一句,您正在尝试的有趣项目。祝你好运!!:)
您需要的是 API,而不是数据源。数据源是所有数据都存在的真相。就像您的示例一样,如果您的数据中有电子邮件,它将始终存在。除非您单独保留电子邮件字段。
方法是创建 api,从 JSON 文件(或数据库)输出所需的数据。您可以选择隐藏不想显示的数据。 这样,您只公开 api,而不是直接公开文件名,这很容易被修改、更改或黑客入侵。
不使用 API 的另一种方法是拥有多个 JSON 文件。 一个文件将包含基本数据,另一个文件将包含机密数据,以及一个外键,例如唯一密钥,该密钥将机密或其他数据与主记录映射。
例: Comments.json:
{
"comments": [{userId: 1, ...},{...}]
}
CommentDetails.json
{...}
用户:
[
1: {"username": "", "email": "[email protected]",...}
]
为什么不在存储数据的目录中使用 .htaccess,并使用类似“全部拒绝”之类的内容呢?
您的脚本可以访问,但不能访问用户的浏览器。
假设将涉及一个邮件服务器,您能否托管具有两个端点的 Web 服务?
端点:
- 发送电子邮件;采用发件人 GUID 而不是电子邮件地址
- 存储电子邮件;采用电子邮件地址并返回发件人 GUID
然后,您的图书馆可以从任何可访问的 www 服务器使用此 Web 服务。在 Web 服务主机上,电子邮件可以以您选择的格式存储。您还需要保护您的 Web 服务,以防止其他人触发邮件通知。
评论
php.ini
.htaccess