我期待构建一个API,我可以在我的服务器上部署以监视系统负载。
它将向运行客户端以显示信息的中央管理器服务器报告。创建安全的API通信
我正在努力的问题是最好的保护API。
我想要的是客户端是唯一可以访问服务器并检索这些信息的软件,但我不确定如何使用PHP来实现此目的。
我也希望分发API和客户端供其他人在他们的服务器上使用的可能性,所以我不希望人们能够访问其他人的数据,如果他们也使用API。
客户端也使用MySql以PHP编写,并具有安全登录。
我期待构建一个API,我可以在我的服务器上部署以监视系统负载。
它将向运行客户端以显示信息的中央管理器服务器报告。创建安全的API通信
我正在努力的问题是最好的保护API。
我想要的是客户端是唯一可以访问服务器并检索这些信息的软件,但我不确定如何使用PHP来实现此目的。
我也希望分发API和客户端供其他人在他们的服务器上使用的可能性,所以我不希望人们能够访问其他人的数据,如果他们也使用API。
客户端也使用MySql以PHP编写,并具有安全登录。
这听起来像你试图解决错误的问题。
我也希望可以分发API和客户端供他人在他们的服务器上使用,所以我不希望人们能够访问其他人的数据,如果他们也使用API。
唯一正确的答案是认证。您需要通过为每个用户提供只有他们知道的访问凭据来保护您的API。
您的API必须从不显示客户端不允许看到他们的身份验证凭据的任何数据。试图通过试图以某种方式保护客户端免于窥探来解决此危险不安全 - 有人访问客户端并且可以观察到它的运行情况,只要付出足够的努力就能够对它与服务器之间的任何流量进行逆向工程。
如果API已妥善保护,那么使用哪个客户端工具访问它并不重要。限制API访问某个程序的要求将消失。
如果您使用SSL以及身份验证(我使用第三方认证谷歌,fb等),即时创建数据/报告并将数据保存在您的web文件夹外的子目录中(而不是/ var/www,/ var/myStorage/currentSessionId /),那么你基本上可以保证你想要的安全性。
您的php只会访问为其运行的会话命名的子目录。
考虑使用SSL/TLS。 – Lekensteyn 2013-03-14 09:51:20
是的,我想到了,但人们仍然可以访问网址并获取数据,我想我可以限制访问并需要一个特定的IP地址,但这不是很灵活。 – bobthemac 2013-03-14 09:53:49
你有没有考虑过使用API密钥? – Raad 2013-03-14 09:56:01