我对Xamarin和移动开发的世界都很陌生,但是被要求创建一个简单的跨平台移动应用程序,它能够登录到安全的Web服务器,下载一些SQL数据,然后在应用
我想要了解的是如何让移动应用程序安全地从我的Web服务器请求数据。我已经看过并阅读了很多关于使用HttpWebRequest从Web服务器请求数据的信息,但没有一个示例描述如何保护这些数据。此外,我看到很多关于创建REST API的信息,但我不知道这是否是我需要的方式?
任何人都可以给我一个非常简单的细分,我需要实现这些步骤才能实现这一目标吗?我觉得自己已经沉浸在网络技术的海洋中,不知道游泳的方式:)
我将使用IIS作为数据库,Xamarin App需要在iOS和Android上运行。
任何帮助都非常感谢!
麦克
答案 0 :(得分:6)
您希望实现此方式以及所需的安全级别有点令人困惑。有许多技术可以保护您的应用和服务器。有些很容易实现,有些则不那么容易。
据我所知,您的应用程序将托管在IIS上。没有IIS数据库这样的东西。 IIS只是Microsoft的一个应用服务器。
IIS中最常见的技术是Asp.NET和Microsoft SQL Server数据库。但其他人可以使用,如php(安装一些扩展)和mysql服务器。无论如何,在IIS中使用php只是一个错误的决定IMO,因为还有许多其他轻量级和更好的服务器。
Xamarin与服务器安全无关。 Xamarin只是一种客户端技术,安全性必须驻留在您的服务器应用程序上。 也就是说,为了让客户更安全,您应遵循许多良好做法:
如果你选择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非常重要。否则你可能会遇到一些安全问题