确保这一点的最佳方法是将服务器端组件(即PHP部分)锁定在OAuth2身份验证层之后.我个人推荐
this OAuth2 Server用于此目的.
一般工作流程如下:
1. Send an API key/username/password/etc to an API endpoint (i.e. a URL)
2. Get a token, store it in memory for future use
3. Send this token on subsequent requests
此解决方案优于发送数据的散列(例如MD5),因为这不会对任何内容进行身份验证.它还解决了潜在的问题,而不是隐藏它(例如,POST而不是GET不会保护您的通信).但是,OAuth2不提供机密性.中间的人仍然可以看到/破坏你的请求.
为了更好地保护您的用户,您应该在您的应用上使用HTTPS(TLSv1.2和PFS).只.甚至没有端口80 HTTP服务器执行任何操作,而不是重定向到您的HTTPS服务器.如果iOS支持,还发送HSTS和HPKP标题.
如果您需要比HTTPS OAuth2提供的更好的安全性,我建议learning application security全职,因为如果您对该主题有广泛的知识,那么更详细和复杂的解决方案才有意义. (当然,这取决于你的threat model!)
例如,防御攻击者逆向工程您的应用程序以恢复硬编码的API密钥根本就没有它们,这使您的工作流程变得复杂并且可能需要对每个用户进行身份验证.