创建安全的API通信

时间:2013-03-14 09:49:00

标签: php mysql api

我希望构建一个可以在我的服务器上部署的API来监控系统负载 它将向运行客户端的中央管理器服务器报告以显示信息。

我正在努力解决的问题最好是保护API 我想要的是客户端是唯一可以访问服务器并检索此信息的软件,但我不确定如何使用PHP实现这一点。
我还希望能够分发API和客户端供其他人在他们的服务器上使用,所以我不希望人们在使用API​​的情况下也能访问其他人的数据。

客户端也使用MySql以PHP编写,并具有安全登录。

2 个答案:

答案 0 :(得分:1)

这听起来像是在试图解决错误的问题。

  

我还希望能够将API和客户端分发给其他人在他们的服务器上使用,这样我就不希望人们在使用API​​时能够访问其他人的数据。

唯一正确的答案是身份验证。您需要为每个用户提供只有他们知道的访问凭据才能保护您的API。

您的API必须从不显示客户端不允许根据其身份验证凭据查看的任何数据。通过尝试以某种方式保护客户端免受窥探来试图解决这一危险不安全 - 有权访问客户端并且可以观察其运行的人将能够对其之间的任何流量进行逆向工程。服务器给予足够的努力。

如果API得到了适当的保护,那么使用哪个客户端工具来访问它并不重要。限制对某个程序的API访问的要求将消失。

答案 1 :(得分:0)

如果您使用SSL,以及身份验证(我使用第三方认证google,fb等),即时创建数据/报告并将数据保存在您的网络文件夹外的子目录中(而不是/ var / www) ,/ var / myStorage / currentSessionId /),那么你基本上可以保证你想要的安全性。

你的php只会访问为其运行的会话命名的子目录。