一种保护简单只读API的简单方法

时间:2017-01-03 20:17:06

标签: php apache api http authentication

我为我们的数据库构建了一个简单的只读API,以便用户可以从我们的数据库中检索数据。

例如,URL“http://xxxxx/getAllProfiles”将返回包含存储在数据库中的所有配置文件的JSON结果。

API是只读的,只能通过一些“select”SQL查询来实现。因此,用户不能通过API修改数据库中的任何数据。

我的公司担心API会被一些随机机器人在线利用,并一直要求我为这个API构建一个安全机制。 (担心如果没有密钥或任何东西阻止任何人访问该URL,我们的服务器将被访问太多。它是一个小型服务器。)

使用PHP,我可以实现的最简单的安全机制是什么? (我们也使用Slim作为API,Amazon EC2服务器上运行Ubuntu和Apache,如果这有帮助的话。)最好能在服务器或客户端不使用任何数据库的情况下实现。

如果有任何不清楚的地方,请告诉我,我会澄清。

感谢。

添加: 感谢您的评论。 有没有办法不使用数据库?就像生成密钥或智能的智能方式一样......我想我会提供一个页面,以便用户可以输入域名,算法会将此域名转换为密钥。然后,对于每个请求,用户应包括此密钥。服务器将从请求标头中获取域,并使用相同的算法再次计算。如果两个计算的密钥匹配,则接受请求。我认为,在最低级别,这可以确保在开始时必须有人输入域并获取密钥,从而过滤掉一些随机机器人? 我不确定这是否安全(根本)?但听起来我觉得它可以过滤掉一些东西。

1 个答案:

答案 0 :(得分:0)

当我对Web开发了解甚少时,我发布了此问题。 有许多方法可以保护REST API,例如JWT,Cookie,基本身份验证等