C# 在应用程序中更安全地连接到远程数据库

C# 在应用程序中更安全地连接到远程数据库,c#,php,android,mysql,xamarin,C#,Php,Android,Mysql,Xamarin,假设我正在制作一个Xamarin.android(让我们把它当作任何平台/框架)。所以,我必须使用远程数据库来存储和检索信息 我一直在我的服务器上制作与数据库交互的基于PHP的API。我让我的应用程序用数据访问这些API端点,这些API更新数据库中的信息 所以,我想知道如果我让我的应用程序直接连接到远程MySQL,它会比启动API快一点 哪条路更安全?我不希望任何人因为明显的原因能够截获数据库的数据或连接细节。最安全的方法是什么?或者还有其他方法可以完成这项工作吗?暂时忘掉更安全的方法;后端层(

假设我正在制作一个Xamarin.android(让我们把它当作任何平台/框架)。所以,我必须使用远程数据库来存储和检索信息

我一直在我的服务器上制作与数据库交互的基于PHP的API。我让我的应用程序用数据访问这些API端点,这些API更新数据库中的信息

所以,我想知道如果我让我的应用程序直接连接到远程MySQL,它会比启动API快一点


哪条路更安全?我不希望任何人因为明显的原因能够截获数据库的数据或连接细节。最安全的方法是什么?或者还有其他方法可以完成这项工作吗?

暂时忘掉更安全的方法;后端层(在您的例子中是API服务器)将使您的系统更加解耦,这是最不需要做的事情。假设您突然决定使用另一种类型的数据库,比如说PostgreSQL而不是MYSQL,您可能需要为连接字符串使用不同的格式,您是否愿意每次用新的数据库连接字符串更新所有客户端android应用程序?这将花费时间和成本,使您的应用程序难以维护,并在用户端中断

是的,使用API更安全(在您的情况下);对客户端应用程序(如android应用程序)进行反向工程要比入侵一个安全性和设计良好的服务器容易得多。正如您在问题中所说,了解太多会使您的数据库容易受到多种类型的攻击。因此,用API封装数据库更安全

然而,仅仅使用API使系统更安全是不够的;您还应该遵循最佳实践。例如使用HTTPS、使用身份验证技术(密码、Oauth2)、使用授权等


不过,我并不是说,没有API就不可能直接使用您的数据库,您可以使用不同的技术来保护您的数据库,这是可能的,但根本不推荐。

暂时忘掉更安全的问题;后端层(在您的例子中是API服务器)将使您的系统更加解耦,这是最不需要做的事情。假设您突然决定使用另一种类型的数据库,比如说PostgreSQL而不是MYSQL,您可能需要为连接字符串使用不同的格式,您是否愿意每次用新的数据库连接字符串更新所有客户端android应用程序?这将花费时间和成本,使您的应用程序难以维护,并在用户端中断

是的,使用API更安全(在您的情况下);对客户端应用程序(如android应用程序)进行反向工程要比入侵一个安全性和设计良好的服务器容易得多。正如您在问题中所说,了解太多会使您的数据库容易受到多种类型的攻击。因此,用API封装数据库更安全

然而,仅仅使用API使系统更安全是不够的;您还应该遵循最佳实践。例如使用HTTPS、使用身份验证技术(密码、Oauth2)、使用授权等


不过,我并不是说,没有API就不可能直接使用您的数据库,您可以使用不同的技术保护您的数据库,这是可能的,但根本不推荐。

简短回答:假设API没有SQL注入,API会更安全简短回答:假设API没有SQL注入,API会更安全是的,OAuth 2.0令牌通过API从客户端传播到DB是的。是的,我们也这么想。总的来说,我们在寻找更快的性能。但是,数据安全更为重要。感谢您的意见和建议:)是的,OAuth 2.0令牌通过API从客户端传播到DB是一种方式。是的,我也这么想。总的来说,我们在寻找更快的性能。但是,数据安全更为重要。感谢您的意见和建议:)