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

标签 php ios security

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

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

现在上面的问题是任何有权访问该 URL 的人都可以很容易地用垃圾邮件、过多的提交等轰炸数据库。感觉非常不安全。我应该采取什么方法来使这个过程尽可能安全?

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

最佳答案

确保这一点的最佳方法是将您的服务器端组件(即 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 不提供 secret 性。中间人仍然可以看到/破坏您的请求。

为了更好地保护您的用户,您应该在您的应用中使用 HTTPS(TLSv1.2 和 PFS)。 专有。 甚至没有端口 80 HTTP 服务器除了重定向到您的 HTTPS 服务器之外还能做任何事情。另送HSTSHPKP header ,如果 iOS 支持的话。

如果您需要比 HTTPS + OAuth2 提供更好的安全性,我建议 learning application security全职,因为只有当你对这个主题有广泛的知识时,更详细和复杂的解决方案才有意义。 (当然取决于你的 threat model !)

例如,防御攻击者对您的应用进行逆向工程以恢复硬编码 API key 的方法就是不拥有它们,这会使您的工作流程复杂化,并且可能需要对每个用户进行身份验证。

关于php - 安全地发送 PHP 从 iOS 获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30297392/

相关文章:

php - 使用 Elastica 库删除 ElasticSearch 中的文档

ios - 找不到“Dropbox-iOS-SDK/DropboxSDK.h”文件

ios - UIDatePicker valueChanged 作为车轮旋转?

security - 保护 ElasticSearch 和 Couchbase 的最佳实践

php - 需要帮助在电子邮件中发送 MySQL 表信息

php - 重复 mysql 获取导致 php 资源使用率较高

javascript - 为什么内联 JS block 不安全?

android - 谷歌云消息安全

php词过滤功能?

ios - 根据日期删除行