通过 Internet 连接 MySQL 和 .net 应用程序是不是存在危险?

Posted

技术标签:

【中文标题】通过 Internet 连接 MySQL 和 .net 应用程序是不是存在危险?【英文标题】:Is connecting MySQL and .net application via Internet a hazard?通过 Internet 连接 MySQL 和 .net 应用程序是否存在危险? 【发布时间】:2013-02-06 22:47:21 【问题描述】:

对于一个小型项目,我需要在 mysql 中存储一些数据。用户遍布世界各地并运行 .net ClickOnce 应用程序。访问的数据并不是真正的机密,即使有人可以访问,从隐私的角度来看也不会造成损害。

从技术上讲,可以将 MySQL 数据库放在某处的服务器上,并让每个人都通过互联网通过Connector/Net 进行连接。但这是否可取?

    该协议是否足够稳定/健壮,足以处理缓慢的互联网连接? 这是否会带来严重的安全风险。数据加密不是主题,但密码加密是。将 MySql 数据库(端口)打开到 Internet 会有危险吗?

或者,我可以通过 Web 服务或其他方式“包装”数据库访问。但当然这是我想避免的一些开销。那么通过 Internet 连接 MySQL 是否有效?

备注:

MySQL connection with VB.NET via internet! 没有重复项 所以Connecting to the database via the internet 不太具体,截至今天没有答案。

【问题讨论】:

【参考方案1】:

1) 本协议稳定,使用时间长。

2) 您不应该在本地网络之外共享您的数据库,这是一个很高的安全风险。您应该在您的数据库服务器上创建一些层,您将从数据库中访问数据。你也可以在client-sidedb之间建立WCF服务器。

【讨论】:

【参考方案2】:

我建议为您的远程 .NET 应用程序实现一个 REST Web 服务层以与之通信。然后,您可以让处理 Web 服务请求的服务器对数据库进行本地访问,而您不必担心 MySQL 协议是否能胜任这项工作。

我的经验是 MySQL 协议可能在 WAN 上工作,但它实际上是在本地网络上使用的,因此 WAN 的延迟会使事务处理速度慢得无法忍受。 p>

此外,MySQL 服务器必须公开其端口(默认情况下为 3306),这并没有真正加强,因此除非您通过 *** 或 stunnel 或其他不安全的东西连接。

MySQL 客户端/服务器协议不会以纯文本形式传输密码,它会在发送之前在客户端对密码进行哈希处理。但是我知道 MySQL Connector/NET 不使用 MySQL 客户端,所以我不确定它是否在客户端对密码哈希做同样的事情。

【讨论】:

以上是关于通过 Internet 连接 MySQL 和 .net 应用程序是不是存在危险?的主要内容,如果未能解决你的问题,请参考以下文章

通过中断的连接从 Internet 下载文件

如何每隔N秒检查一次android中的Internet连接

UIWebView 和 NSURLRequest 上没有 Internet 连接处理 [重复]

下载Navicat for MySQL,安装后连接失败怎么办?

通过 javascript 或 jquery 确定用户的 Internet 连接类型

HTTP 请求重新启动 Internet 连接