安全地发送PHP从iOS获取信息

所以情况就是这样,我有一个iOS应用程序,其中有一部分用户将信息输入特定标签,然后我根据用户给定的信息创建一个URL请求,并将其发送到我的PHP后端。 URL遵循以下结构:

http://www.somewebsite.com/send.php?title=hello&name=john&contact=email 

现在上面的问题是任何有权访问URL的人都可以轻易地用垃圾邮件轰炸数据库,提交的内容太多等等。感觉非常不安全。 我应该如何使这个过程尽可能安全?

我目前对PHP的知识水平是能够通过简单地使用“完成工作”的方法(无论它们有多安全)来完成任务,但现在我开始达到我需要保持安全的程度,安全等等。 非常感谢有用的建议/见解。 谢谢!

确保这一点的最佳方法是将服务器端组件(即PHP部分)锁定在OAuth2身份validation层之后。 我个人推荐这个OAuth2服务器用于此目的。

一般工作流程如下:

 1. Send an API key/username/password/etc to an API endpoint (ie a URL) 2. Get a token, store it in memory for future use 3. Send this token on subsequent requests 

此解决方案优于发送数据的哈希值(例如MD5),因为这不会对任何内容进行身份validation。 它还解决了潜在的问题而不是隐藏它(例如POST而不是GET不会保护你的通信)。 但是,OAuth2不提供机密性 。 中间的人仍然可以看到/破坏你的请求。

为了更好地保护您的用户,您应该在您的应用上使用HTTPS (TLSv1.2 with PFS )。 只。 甚至没有端口80 HTTP服务器执行任何操作,而不是重定向到您的HTTPS服务器。 如果iOS支持,还要发送HSTS和HPKP标头。

如果您需要比HTTPS + OAuth2提供更好的安全性,我建议全天候学习应用程序安全性,因为只有您对该主题有广泛的知识,更详细和复杂的解决方案才有意义。 (当然,取决于您的威胁模型 !)

例如,防御攻击者逆向工程您的应用程序以恢复硬编码的API密钥根本就没有它们,这使您的工作流程变得复杂并且可能需要对每个用户进行身份validation。

添加用户名/密码并键入您的参数。 制作您自己的组合(如果可能,加密)然后始终先检查它,以便最小化该过程。

如果凭据错误停止进程。