Xamarin App安全的Web服务器登录

Mik*_*keB 1 security web xamarin server

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

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

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

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

任何帮助非常感谢!

麦克风

xle*_*eon 6

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

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

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

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

  1. 切勿在本地存储(设备数据库,设置,文件系统等)上存储用户密码或敏感数据
  2. 正如其他人建议的那样,通过https协议将数据发送到服务器(必须在服务器端配置SSL)
  3. 如果必须在设备上保存关键数据,请使用加密算法(有大量的库来加密本地SQL数据库,只需谷歌)

如果你去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非常重要.否则你可能会遇到一些安全问题