从 iOS 安全发送 PHP 获取信息
Posted
技术标签:
【中文标题】从 iOS 安全发送 PHP 获取信息【英文标题】:Securely Sending PHP Get Information from iOS 【发布时间】:2015-05-18 07:30:51 【问题描述】:所以情况就是这样,我有一个 ios 应用程序,其中有一部分用户将信息输入到特定标签中,然后我根据用户提供的信息创建一个 URL 请求,并将其发送到我的 php 后端。 URL 遵循以下结构:
http://www.somewebsite.com/send.php?title=hello&name=john&contact=email
现在上面的问题是,任何可以访问该 URL 的人,都可以很容易地用垃圾邮件、过多的提交等轰炸数据库。感觉很不安全。我应该如何使这个过程尽可能安全?
我目前的 PHP 知识水平能够通过简单地使用“完成工作”的方法来完成任务(不管它们有多安全),但现在我开始达到我需要的程度牢记安全,安全等。非常感谢有用的建议/见解。谢谢!
【问题讨论】:
阅读此***.com/questions/15273705/… ***.com/questions/14452137/… 您的用户在您的应用(或底层服务器)中是否有帐户?这使任务变得更加容易。 【参考方案1】:确保这一点的最佳方法是将您的服务器端组件(即 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 密钥的方法就是不拥有它们,这会使您的工作流程复杂化,并且可能需要对每个用户进行身份验证。
【讨论】:
很好的建议,但学习安全性是一个很大的话题。如果 OP 想要真正的安全性,请聘请领域专家。如果 OP 只对安全性的外观感兴趣--canry-on。 非常感谢您提供的信息。 PHP 安全性现在开始出现非常深入的范围。你上面概述的内容对于我的目的来说绰绰有余。很久以后,我需要研究一些更高级的主题。谢谢。 @zaph 当然,但我相信让安全教育更容易获得对社会来说是一件好事。 (如果有人想聘请领域专家,我当然可以通过my company 联系我!:P) @Vimzy 不客气。如果您在该回购或我的回答中遇到任何问题,请随时在 Twitter 上通过电子邮件等方式联系我。 :) @ScottArciszewski 我同意教育!就个人而言,我喜欢 H. X. Mel 的 Cryptography Decrypted。你会见到爱丽丝、鲍勃和夏娃。 ;-)【参考方案2】:在您的参数上添加用户名/密码和密钥。制作您自己的组合(如果可能,请加密),然后始终先检查它,以便将过程最小化。
如果错误的凭据停止该过程。
【讨论】:
以上是关于从 iOS 安全发送 PHP 获取信息的主要内容,如果未能解决你的问题,请参考以下文章
从 PHP 获取 Mongodb 中两个日期之间的订单详细信息
如何从 mysql 数据库中获取数据并使用 PHP 将其发送给用户? [关闭]
从 PHP 获取信息到 HTML5 JavaScript 游戏