什么是使Web服务安全的最佳方法

时间:2014-08-15 08:45:55

标签: php xcode web-services ipad rest

上周我一直在阅读/谷歌搜索关于此问题/应用程序的最佳方法。

我有一个基本上是数据库前端的应用程序,目前它在本地存储数据,所有工作都很愉快(在应用程序商店中可用)。

我接下来要做的是将这些数据存储在服务器上。

(在此之前,我根本没有服务器的经验,所以从我自己的研究和假设的这一点来看,如果有什么不对的地方,请指出给我)。

我认为RESTful网络服务设计最适合我想要的。 基本上意图是iPad / Android将能够与Web服务交谈,Web服务位于MySQL数据库之上,Web服务将接收字符串,视频,照片。

我目前的情况是我可以让网络服务与MySQL数据库交谈,我可以从iPad发送简单请求数据(字符串)和发布数据(字符串),(仍然需要找出处理照片的最佳方式)和视频,但那是一个不同的问题。)

我的问题:使此网络服务登录/安全的最佳方式是什么。

数据非常敏感,因此必须是安全的。目前,用户无法在没有用户名的情况下访问该应用。密码,但显然我还需要在网络服务中采取预防措施。

我已经完成了大量的谷歌搜索研究,甚至在这里的主题我似乎不断看到与#34相关的评论;这种方法已经过时了#34;等。

似乎有两种基本方法, 1)基本上有一个GUID在初始启动时被混淆< -I think 2)每次请求数据时也要传输密码/用户名。

任何帮助指导都会得到很好的回复。

由于

P.S。对论文

抱歉

2 个答案:

答案 0 :(得分:1)

  • 可以对服务器和客户端之间交换的数据进行加密和签名。为此,您可以免费生成自己的可信证书。您必须根据您使用的技术寻找方法。这可以保护您免受中间人攻击,因为入侵者无法读取或更改数据。

  • 您在代码中使用的任何密码都应加密以防止逆向工程(至少对于业余爱好者而言)

  • 使用基于密钥的加密算法

  • 捕获所有异常,不应将错误传输到客户端,因为它是系统的一扇门。

  • 保护您的wsdl文件(如果有的话),以防止公众查看。

  • 验证您的表单,用户不应该注入特殊字符,例如“<”,“>”,“'”,“=”,“ - ”......

    这是我现在能想到的。

答案 1 :(得分:0)

您可以使用以下方法确保您的API安全。

  • oAuth实现使用身份验证标头发送和接收数据。

  • SSL证书,以确保服务器和客户端之间的通信已加密。您可以轻松购买低至每月15美元的私人证书。

  • 哈希数据库字段,如密码。 (确保不使用MD5,因为它不安全。请改用SHA1或SHA2)。

  • 请勿在移动应用程序中存储用户密码,而是存储某种哈希身份验证密钥。