上周我一直在阅读/谷歌搜索关于此问题/应用程序的最佳方法。
我有一个基本上是数据库前端的应用程序,目前它在本地存储数据,所有工作都很愉快(在应用程序商店中可用)。
我接下来要做的是将这些数据存储在服务器上。
(在此之前,我根本没有服务器的经验,所以从我自己的研究和假设的这一点来看,如果有什么不对的地方,请指出给我)。
我认为RESTful网络服务设计最适合我想要的。 基本上意图是iPad / Android将能够与Web服务交谈,Web服务位于MySQL数据库之上,Web服务将接收字符串,视频,照片。
我目前的情况是我可以让网络服务与MySQL数据库交谈,我可以从iPad发送简单请求数据(字符串)和发布数据(字符串),(仍然需要找出处理照片的最佳方式)和视频,但那是一个不同的问题。)
我的问题:使此网络服务登录/安全的最佳方式是什么。
数据非常敏感,因此必须是安全的。目前,用户无法在没有用户名的情况下访问该应用。密码,但显然我还需要在网络服务中采取预防措施。
我已经完成了大量的谷歌搜索研究,甚至在这里的主题我似乎不断看到与#34相关的评论;这种方法已经过时了#34;等。
似乎有两种基本方法, 1)基本上有一个GUID在初始启动时被混淆< -I think 2)每次请求数据时也要传输密码/用户名。
任何帮助指导都会得到很好的回复。
由于
P.S。对论文
抱歉答案 0 :(得分:1)
可以对服务器和客户端之间交换的数据进行加密和签名。为此,您可以免费生成自己的可信证书。您必须根据您使用的技术寻找方法。这可以保护您免受中间人攻击,因为入侵者无法读取或更改数据。
您在代码中使用的任何密码都应加密以防止逆向工程(至少对于业余爱好者而言)
使用基于密钥的加密算法
捕获所有异常,不应将错误传输到客户端,因为它是系统的一扇门。
保护您的wsdl文件(如果有的话),以防止公众查看。
验证您的表单,用户不应该注入特殊字符,例如“<”,“>”,“'”,“=”,“ - ”......
这是我现在能想到的。
答案 1 :(得分:0)
您可以使用以下方法确保您的API安全。
oAuth实现使用身份验证标头发送和接收数据。
SSL证书,以确保服务器和客户端之间的通信已加密。您可以轻松购买低至每月15美元的私人证书。
哈希数据库字段,如密码。 (确保不使用MD5,因为它不安全。请改用SHA1或SHA2)。
请勿在移动应用程序中存储用户密码,而是存储某种哈希身份验证密钥。