我的iPhone应用程序必须定期与mySQL数据库进行通信;它都发送接收数据的请求并将数据添加到数据库中。
目前,我的所有iPhone应用程序都会向PHP脚本发送POST请求,该脚本会检查POST请求并根据请求类型执行查询。现在,我已经读到这是“糟糕的”,我是一个初级程序员(特别是服务器端脚本),所以我想知道“最好的方法”或“最佳实践”来做到这一点。
是否只是将散列密码发送到PHP脚本,以便在运行请求之前检查并使用SSL?或者还有更多吗?
如果可能,请提供相关文档和/或代码以帮助我入门。
谢谢!
答案 0 :(得分:1)
您需要解决3个基本问题。一个小的谷歌搜索将获得每个信息。 1)身份验证 - 控制谁有权访问您的Web服务(取决于您的设置,有很多选项可以开箱即用并自行推送),2)加密 - 防止某人拦截来自/来自未加密的邮件你的网络服务(SSL应该处理这个),3)SQL注入 - 这可以在服务器端处理
这些是你应该关注的基本问题,而且每个问题都有很多关于网络的好信息。
答案 1 :(得分:1)
你有两个问题需要解决,而不是一个(在Stack Overflow问题中经常出现这种情况: - ))。
问题1:创建一个允许与MySql数据库进行适当交互的PHP Web服务。
问题2:在iPhone应用程序中与所述Web服务进行交互。
您仍然需要保护@wzs所述的流量,但您现在已经分离了对数据库的访问权限并访问了您的服务。现在只有服务可以访问数据库。
答案 2 :(得分:0)
从移动应用程序在远程数据库上运行查询不是一个好主意(无论你是否使用花哨的加密) - 在大多数情况下,这是一个错误的架构模式。
相反,您应该通过REST API公开数据(即以JSON格式)。有几个PHP框架/库应该简化这个过程,看看:http://blog.programmableweb.com/2011/09/23/short-list-of-restful-api-frameworks-for-php/
在移动应用上,连接到API,将检索到的JSON解析为您的商业模式...... <{3}},RESTKit,AFIncrementalStore等图书馆可能会有所帮助。