【问题标题】:Do I need a type of encryption for connecting to an external database in Xamarin我是否需要一种加密类型来连接到 Xamarin 中的外部数据库
【发布时间】:2017-12-13 17:59:45
【问题描述】:

我目前正在使用 Xamarin 开发跨平台应用程序。 用户可以登录并注册,为此我需要连接到托管在 000webhost 中的外部数据库。

我正在使用此代码连接到我的数据库并创建一个帐户。

HttpClient http = new HttpClient();
string ss = "https://testdatabase.000webhost.com/database.php";
var formContent = new FormUrlEncodedContent(new[]{
                      new KeyValuePair<string,string>("Name", name.Text),
                      new KeyValuePair<string,string>("Email",email.Text),
                      new KeyValuePair<string,string>("Mobile",mobile.Text),
                      new KeyValuePair<string,string>("Password",pass.Text)
});
HttpResponseMessage response = await http.PostAsync(ss, formContent);
var responsedone = await response.Content.ReadAsStringAsync();

所以这就是我的问题所在......这是连接到我的数据库的安全方式吗?如果没有,我该怎么做或改变?

提前致谢!

【问题讨论】:

  • @stuartd 我想说的是,例如,如果用户登录。有人可以访问应用程序发送到服务器的数据吗?

标签: c# mysql database xamarin


【解决方案1】:

向该服务器发出的 HTTP 请求如何经过身份验证(您以外的其他人是否可以向服务器发出请求)?您是否信任 000webhost 的用户密码?您的用户是否信任 000webhost 的密码?密码在存储到数据库之前是否经过哈希处理? SSL/TLS 的使用仅提供安全性,防止第三方窥探网络上的流量,但不会自动确保一切安全。

对我来说,您的解决方案看起来不安全,而且是在自找麻烦。您应该研究如何正确验证用户身份。这是来自 OWASP 的文档,其中包含一些指导原则https://www.owasp.org/index.php/Authentication_Cheat_Sheet

可能查看 OAuth 或 OpenId 来对您的用户进行身份验证,而不是手动滚动您自己的身份验证。

【讨论】:

    猜你喜欢
    • 2015-06-26
    • 2021-10-10
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 2020-11-22
    • 1970-01-01
    相关资源
    最近更新 更多