Xamarin App安全Web服务器登录

时间:2015-11-16 16:21:15

标签: security web xamarin server

我对Xamarin和移动开发的世界都很陌生,但是被要求创建一个简单的跨平台移动应用程序,它能够登录到安全的Web服务器,下载一些SQL数据,然后在应用

我想要了解的是如何让移动应用程序安全地从我的Web服务器请求数据。我已经看过并阅读了很多关于使用HttpWebRequest从Web服务器请求数据的信息,但没有一个示例描述如何保护这些数据。此外,我看到很多关于创建REST API的信息,但我不知道这是否是我需要的方式?

任何人都可以给我一个非常简单的细分,我需要实现这些步骤才能实现这一目标吗?我觉得自己已经沉浸在网络技术的海洋中,不知道游泳的方式:)

我将使用IIS作为数据库,Xamarin App需要在iOS和Android上运行。

任何帮助都非常感谢!

麦克

1 个答案:

答案 0 :(得分:6)

您希望实现此方式以及所需的安全级别有点令人困惑。有许多技术可以保护您的应用和服务器。有些很容易实现,有些则不那么容易。

据我所知,您的应用程序将托管在IIS上。没有IIS数据库这样的东西。 IIS只是Microsoft的一个应用服务器。

IIS中最常见的技术是Asp.NET和Microsoft SQL Server数据库。但其他人可以使用,如php(安装一些扩展)和mysql服务器。无论如何,在IIS中使用php只是一个错误的决定IMO,因为还有许多其他轻量级和更好的服务器。

Xamarin与服务器安全无关。 Xamarin只是一种客户端技术,安全性必须驻留在您的服务器应用程序上。 也就是说,为了让客户更安全,您应遵循许多良好做法:

  1. 永远不要在本地商店(设备数据库,设置,文件系统等)上存储用户密码或敏感数据
  2. 正如其他人建议的那样,通过https协议将数据发送到服务器(必须在服务器端配置SSL)
  3. 如果必须在设备上保存关键数据,请使用加密 算法(有大量的库来加密本地SQL 数据库,只是google it)
  4. 如果你选择Asp.NET,我建议你继续整合Asp.Net Identity。它是ASP.Net的标准身份验证/授权系统,内置功能将处理您的用户数据库以及您自己很难找到的安全问题(即:在数据库中“按原样”存储密码是大安全漏洞)

    之后,您将不得不选择身份验证(登录)系统。有多种选择,但行业标准为oAuth2。如果要使oAuth2更安全,请使用刷新令牌。 oAuth由Asp.Net标识和Xamarin支持。对于Xamarin,您可以使用oAuth .NET客户端库或进行简单的http调用(HttpWebRequest)来请求令牌,刷新令牌等。

    关于REST API:无论您使用哪种客户端或服务器堆栈,我认为这是最佳选择。同样,Asp.NET有一个WebApi,可以在您的应用程序上启用REST。

    如果所有这些听起来太多,请不要担心。使用模板在Visual Studio中创建Asp.Net应用程序时,默认情况下,您将获得具有REST(WebApi)和身份验证/授权/安全性(Asp.Net Identity)的现成应用程序。

    在服务器端和客户端都正确实现oAuth非常重要。否则你可能会遇到一些安全问题